Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Melewati Parameter Render Belakang kepada Kaedah Bootstrap Angular2?

Bagaimanakah Saya Boleh Melewati Parameter Render Belakang kepada Kaedah Bootstrap Angular2?

Barbara Streisand
Barbara Streisandasal
2024-12-11 02:03:14979semak imbas

How Can I Pass Backend-Rendered Parameters to the Angular2 Bootstrap Method?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn