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
Libérer: 2024-12-11 02:03:14
original
1103 Les gens l'ont consulté

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 }]);
Copier après la connexion

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

class SomeComponentOrService {
   constructor(@Inject('headers') private headers) {}
}
Copier après la connexion

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 }]);
Copier après la connexion

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) { }
}
Copier après la connexion

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

function loadContext(context: ContextService) {
  return () => context.load();
}
Copier après la connexion

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:
Copier après la connexion

ce .monDep = injector.get(MyDependency);

Instead of directly injecting `MyDependency`:
Copier après la connexion

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

setTimeout(() => this.router = injector.get(Router));
Copier après la connexion

}
}

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal