Maison >interface Web >js tutoriel >Comment transmettre les paramètres rendus par le backend au bootstrap angulaire 2 pour définir les en-têtes HTTP ?

Comment transmettre les paramètres rendus par le backend au bootstrap angulaire 2 pour définir les en-têtes HTTP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-06 09:01:10231parcourir

How to Pass Backend-Rendered Parameters to Angular 2 Bootstrap for Setting HTTP Headers?

Paramètres d'amorçage Angular2 du backend à l'aide de l'injection de dépendances

Problème :

Dans Angular2, comment les paramètres rendus sur le backend peuvent-ils être transmis à la méthode d'amorçage pour définir les en-têtes HTTP pour toutes les requêtes utilisant BaseRequestOptions?

Solution :

En utilisant l'injection de dépendances d'Angular, les paramètres peuvent être transmis directement à la fonction bootstrap :

var headers = ... // retrieve headers from backend

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

Pour injecter les en-têtes en composants ou services, utilisez le décorateur @Inject() :

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

Alternativement, une classe d'options de requête personnalisée peut être créée et injectée directement :

class MyRequestOptions extends BaseRequestOptions {
  constructor (private headers) {
    super();
  }
} 

var values = ... // retrieve headers from backend
var headers = new MyRequestOptions(values);

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

Approches supplémentaires :

  • APP_INITIALIZER : Initialise les services avec données du backend avant d’initialiser l’application. Ceci est utile pour définir les valeurs d'en-tête.
  • Injection de constructeur : Le constructeur Angular 2 peut être utilisé pour l'initialisation au lieu de la méthode d'amorçage.
  • AoT (Ahead -of-Time Compilation) : Certaines modifications sont nécessaires pour fonctionner avec AoT, comme le déplacement de la fermeture de l'usine hors du fournisseur.
  • Injecteur : Si une dépendance cyclique se produit (par exemple, injection du routeur), l'injecteur peut être utilisé pour récupérer la dépendance au lieu d'une injection directe.

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