Heim >Web-Frontend >js-Tutorial >Wie kann ich vom Backend gerenderte Parameter an die Angular2-Bootstrap-Methode übergeben?
Ü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!