Meluluskan Parameter Render Belakang ke Kaedah Bootstrap Angular2
Untuk menghantar hujah yang diberikan pada bahagian belakang kepada kaedah bootstrap Angular2, manfaatkan suntikan kebergantungan Angular keupayaan. Begini cara untuk mencapainya:
var headers = ... // Retrieve headers from the server bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
Pendekatan ini membolehkan anda menyuntik parameter ini ke dalam komponen atau perkhidmatan Sudut anda:
class SomeComponentOrService { constructor(@Inject('headers') private headers) {} }
Sebagai alternatif, anda boleh terus menyediakan BaseRequestOptions yang disediakan seperti berikut:
class MyRequestOptions extends BaseRequestOptions { constructor(private headers) { super(); } } var values = ... // Fetch headers from the server var headers = new MyRequestOptions(values); bootstrap(AppComponent, [{ provide: BaseRequestOptions, useValue: headers }]);
Dengan kaedah ini, anda boleh menggunakan pengepala ini dalam aplikasi Angular anda dengan menyuntik BaseRequestOptions terus:
class ConfigService { constructor(private http: Http, @Inject(BaseRequestOptions) private baseRequestOptions) { } }
Nota: Untuk kompilasi AoT, alihkan penutupan kilang ke luar kelas:
function loadContext(context: ContextService) { return () => context.load(); }
Dan dalam NgModul:
@NgModule({ ... providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: loadContext, deps: [ContextService], multi: true } ],For cyclic dependency issues, inject the Injector and retrieve the dependency:
this.myDep = injector.get(MyDependency);
Instead of directly injecting `MyDependency`:
@Injectable()
export class ConfigService {
private router:Router;
constructor(/private router:Router/ penyuntik: Penyuntik) {
setTimeout(() => this.router = injector.get(Router));
}
}
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Parameter Render Belakang kepada Kaedah Bootstrap Angular2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!