Maison >interface Web >js tutoriel >Comment puis-je transmettre les paramètres rendus par le backend à la méthode Bootstrap Angular2 ?

Comment puis-je transmettre les paramètres rendus par le backend à la méthode Bootstrap Angular2 ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-11 02:03:14979parcourir

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

Passer les paramètres rendus par le backend à la méthode d'amorçage Angular2

Pour transmettre les arguments rendus sur le backend à la méthode d'amorçage Angular2, tirez parti de l'injection de dépendance d'Angular capacités. Voici comment y parvenir :

var headers = ... // Retrieve headers from the server

bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);

Cette approche vous permet d'injecter ces paramètres dans vos composants ou services Angular :

class SomeComponentOrService {
   constructor(@Inject('headers') private headers) {}
}

Alternativement, vous pouvez directement fournir des BaseRequestOptions préparées comme suit :

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 }]);

Avec cette méthode, vous pouvez utiliser ces en-têtes dans votre application Angular en injectant BaseRequestOptions directement :

class ConfigService {
  constructor(private http: Http, @Inject(BaseRequestOptions) private baseRequestOptions) { }
}

Remarque : Pour la compilation AoT, déplacez la fermeture de l'usine en dehors de la classe :

function loadContext(context: ContextService) {
  return () => context.load();
}

Et au sein du NgModule :

@NgModule({
  ...
  providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: loadContext, deps: [ContextService], multi: true } ],
For cyclic dependency issues, inject the Injector and retrieve the dependency:

ce .monDep = injector.get(MyDependency);

Instead of directly injecting `MyDependency`:

@Injectable()
export class ConfigService {
routeur privé : Routeur ;
constructeur (/ routeur privé : Routeur / injecteur : Injecteur) {

setTimeout(() => this.router = injector.get(Router));

}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn