更新> = RC.5
@NgModule({
...
})
export class AppModule {
ngDoBootstrap(moduleRef) {
appInjector(moduleRef.injector);
}
}
appInjector
実装これは直接Angular2によってサポートされていない
元< = RC.5
下記参照。インジェクタをAngularアプリの外に保存し、@CanActivate()
デコレータの回避策として示されているように、https://github.com/angular/angular/issues/4112#issuecomment-153811572にそのインジェクタを保存することができます。 (Plunker example)
インジェクタはappInjector
bootstrap(App, [
Auth,
HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]).then((appRef: ComponentRef) => {
// store a reference to the application injector
appInjector(appRef.injector);
});
app-injector.ts
let appInjectorRef: Injector;
export const appInjector = (injector?: Injector):Injector => {
if (injector) {
appInjectorRef = injector;
}
return appInjectorRef;
};
に割り当てられているmain.ts
では、あなたは
appInjector()...
Thのようなインジェクタへの参照を取得することができますbootstrap()
が完了する前にコンポーネントが作成されていれば動作しません。
完璧、よろしくお願いいたします。 –
ng2リリースでこれを行う方法はありますか? – baryo
私は自分の答えを更新しました。 –