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
Barbara StreisandOriginal
2024-12-11 02:03:14979Durchsuche

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

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

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

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

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) { }
}

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

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

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:

dieses .myDep = injektor.get(MyDependency);

Instead of directly injecting `MyDependency`:

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

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

}
}

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!

Stellungnahme:
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