Heim > Web-Frontend > js-Tutorial > Wie kann ich vom Backend gerenderte Parameter an die Angular2-Bootstrap-Methode übergeben?

Wie kann ich vom Backend gerenderte Parameter an die Angular2-Bootstrap-Methode übergeben?

Barbara Streisand
Freigeben: 2024-12-11 02:03:14
Original
983 Leute haben es durchsucht

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

Übergabe von Backend-gerenderten Parametern an die Angular2-Bootstrap-Methode

Um im Backend gerenderte Argumente an die Angular2-Bootstrap-Methode zu übergeben, nutzen Sie die Abhängigkeitsinjektion von Angular Fähigkeiten. So erreichen Sie dies:

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

bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
Nach dem Login kopieren

Mit diesem Ansatz können Sie diese Parameter in Ihre Angular-Komponenten oder -Dienste einfügen:

class SomeComponentOrService {
   constructor(@Inject('headers') private headers) {}
}
Nach dem Login kopieren

Alternativ können Sie vorbereitete BaseRequestOptions direkt wie folgt bereitstellen:

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 }]);
Nach dem Login kopieren

Mit dieser Methode können Sie diese Header in Ihrer Angular-Anwendung verwenden, indem Sie BaseRequestOptions einfügen direkt:

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

Hinweis: Verschieben Sie für die AoT-Kompilierung den Fabrikabschluss außerhalb der Klasse:

function loadContext(context: ContextService) {
  return () => context.load();
}
Nach dem Login kopieren

Und innerhalb des NgModule:

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

dieses .myDep = injektor.get(MyDependency);

Instead of directly injecting `MyDependency`:
Nach dem Login kopieren

@Injectable()
export class ConfigService {
private router:Router;
Konstruktor(/private router:Router/injektor:Injektor) {

setTimeout(() => this.router = injector.get(Router));
Nach dem Login kopieren

}
}

Das obige ist der detaillierte Inhalt vonWie kann ich vom Backend gerenderte Parameter an die Angular2-Bootstrap-Methode übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage