ホームページ >ウェブフロントエンド >jsチュートリアル >バックエンド パラメーターを使用して Angular 2 アプリをブートストラップするにはどうすればよいですか?
Angular 2 アプリケーションを初期化する場合、構成に必要なパラメーターを指定することが重要です。これらのパラメーターがバックエンドで生成されるシナリオでは、ブートストラップ プロセス中にパラメーターを渡す必要があります。
すべてのリクエストに HTTP ヘッダーを設定するには、Angular の依存性注入メカニズム。 main.ts では、次のアプローチを使用できます:
import { bootstrap } from '@angular/platform-browser-dynamic'; import { AppComponent } from './app.component.ts'; const headers = ... // Retrieve headers from the backend bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
コンポーネントまたはサービス内で、次を使用してこれらのヘッダーを挿入できます:
class SomeComponentOrService { constructor(@Inject('headers') private headers) { } }
あるいは、必要なパラメータをカプセル化する BaseRequestOptions のカスタム サブクラスを提供することもできます。 headers:
class MyRequestOptions extends BaseRequestOptions { constructor (private headers) { super(); } } const values = ... // Get headers from the backend const headers = new MyRequestOptions(values); bootstrap(AppComponent, [{ provide: BaseRequestOptions, useValue: headers }]);
循環依存関係:
必要な依存関係を挿入すると、循環依存関係が発生する場合があります。これを解決するには、インジェクターを挿入し、それを通じて依存関係を取得します。
constructor(injector: Injector) { this.myDep = injector.get(MyDependency); }
APP_INITIALIZER による遅延初期化:
依存関係に追加の初期化が必要なシナリオの場合アプリケーションを開始する前に、APP_INITIALIZER プロバイダーを利用できます。初期化関数によって返された Promise が解決されるまで、初期化とブートストラップが遅延されます。
関連アプローチ:
別のアプローチは、CONFIG トークンを使用して構成データを渡すことです。ブートストラップ中。ただし、この方法は、アプリケーションのコード内に構成が存在する必要があるため、上記の方法ほど柔軟性がありません。
以上がバックエンド パラメーターを使用して Angular 2 アプリをブートストラップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。