백엔드 렌더링된 매개변수를 Angular2 부트스트랩 방법에 전달
백엔드에서 렌더링된 인수를 Angular2 부트스트랩 방법에 전달하려면 Angular의 종속성 주입을 활용하세요. 능력. 이를 달성하는 방법은 다음과 같습니다.
var headers = ... // Retrieve headers from the server bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
이 접근 방식을 사용하면 이러한 매개변수를 Angular 구성 요소 또는 서비스에 삽입할 수 있습니다.
class SomeComponentOrService { constructor(@Inject('headers') private headers) {} }
또는 다음과 같이 준비된 BaseRequestOptions를 직접 제공할 수도 있습니다.
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 }]);
이 방법을 사용하면 다음과 같이 Angular 애플리케이션에서 이러한 헤더를 사용할 수 있습니다. BaseRequestOptions 직접 주입:
class ConfigService { constructor(private http: Http, @Inject(BaseRequestOptions) private baseRequestOptions) { } }
참고: AoT 컴파일의 경우 팩토리 폐쇄를 클래스 외부로 이동하세요.
function loadContext(context: ContextService) { return () => context.load(); }
그리고 NgModule 내에서:
@NgModule({ ... providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: loadContext, deps: [ContextService], multi: true } ],For cyclic dependency issues, inject the Injector and retrieve the dependency:
this.myDep = injector.get(MyDependency);
Instead of directly injecting `MyDependency`:
@Injectable()
내보내기 클래스 ConfigService {
개인 라우터:Router;
생성자(/개인 라우터:Router/인젝터:인젝터) {
setTimeout(() => this.router = injector.get(Router));
}
}
위 내용은 백엔드 렌더링 매개변수를 Angular2 부트스트랩 방법에 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!