Apabila memulakan aplikasi Angular 2, menyediakan parameter yang diperlukan untuk konfigurasi adalah penting. Dalam senario di mana parameter ini dijana pada bahagian belakang, terdapat keperluan untuk menghantarnya semasa proses bootstrapping.
Untuk menetapkan pengepala HTTP untuk semua permintaan, anda boleh menggunakan Angular's mekanisme suntikan pergantungan. Dalam main.ts, pendekatan berikut boleh digunakan:
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 }]);
Dalam komponen atau perkhidmatan anda, anda boleh menyuntik pengepala ini menggunakan:
class SomeComponentOrService { constructor(@Inject('headers') private headers) { } }
Sebagai alternatif, anda boleh menyediakan subkelas tersuai bagi BaseRequestOptions yang merangkumi yang diperlukan pengepala:
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 }]);
Kebergantungan Kitaran:
Menyuntik kebergantungan yang diperlukan kadangkala boleh membawa kepada kebergantungan kitaran. Untuk menyelesaikan masalah ini, anda boleh menyuntik Injector dan mendapatkan semula kebergantungan melaluinya:
constructor(injector: Injector) { this.myDep = injector.get(MyDependency); }
Lazy Initialization dengan APP_INITIALIZER:
Untuk senario di mana kebergantungan anda memerlukan permulaan tambahan sebelum aplikasi bermula, anda boleh menggunakan pembekal APP_INITIALIZER. Ia menangguhkan pemulaan dan bootstrapping sehingga janji yang dikembalikan oleh fungsi pemula diselesaikan.
Pendekatan Berkaitan:
Pendekatan alternatif ialah menggunakan token CONFIG untuk menghantar data konfigurasi semasa bootstrap. Walau bagaimanapun, kaedah ini tidak sefleksibel seperti kaedah yang diterangkan di atas kerana ia memerlukan konfigurasi untuk hadir dalam kod aplikasi.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Bootstrap Apl Sudut 2 dengan Parameter Bahagian Belakang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!