バックエンドでレンダリングされたパラメーターを Angular2 ブートストラップ メソッドに渡す
バックエンドでレンダリングされた引数を Angular2 ブートストラップ メソッドに渡すには、Angular の依存関係注入を利用します。能力。これを実現する方法は次のとおりです:
var headers = ... // Retrieve headers from the server bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
このアプローチにより、これらのパラメーターを Angular コンポーネントまたはサービスに注入できます:
class SomeComponentOrService { constructor(@Inject('headers') private headers) {} }
あるいは、次のように、準備された BaseRequestOptions を直接提供することもできます。
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 }]);
このメソッドを使用すると、これらのヘッダーを Angular アプリケーションで注入して使用できます。 BaseRequestOptions を直接:
class ConfigService { constructor(private http: Http, @Inject(BaseRequestOptions) private baseRequestOptions) { } }
注: AoT コンパイルの場合、ファクトリ クロージャをクラスの外に移動します:
function loadContext(context: ContextService) { return () => context.load(); }
NgModule 内:
@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 {
プライベート ルーター:Router;
コンストラクター(/プライベート ルーター:Router/ インジェクター:インジェクター) {
setTimeout(() => this.router = injector.get(Router));
}
以上がバックエンドでレンダリングされたパラメーターを Angular2 ブートストラップ メソッドに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。