useValue
필드를 통해 특정 값을 제공하려는 경우 앵귤러 2 공급자 구문이 작동하지 않는 이유가 궁금합니다. 내가각도 2 공급자가 useValue 및 new 함수 호출을 사용하지 않습니다.
// Abstracted base class (since interfaces don't work with libraries and tsc)
export class Base {
constructor(public bar:Bar) {
}
}
export class Foo extends Base {
constructor(public bar:Bar) {
super(bar);
}
}
export class Bar {
hello = "world";
}
@NgModule({
declarations: [
AppComponent,
],
imports: [
],
providers: [
{provide: Base, useValue: new Foo(new Bar())}
],
bootstrap: [AppComponent]
})
export class AppModule {
}
이이 ng build
중에 오류가 발생하려고 가지고있는 app.module.ts에 예를 들어
ERROR in Error encountered resolving symbol values statically. Calling function 'Foo', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AppModule in /Users/tbeauvais/Code/example-sdk/src/app/app.module.ts, resolving symbol AppModule in /Users/tbeauvais/Code/example-sdk/src/app/app.module.ts
나는 단순히 필드를 사용하여이 문제를 얻고을, useClass
다음과 같이 deps
을 통해 매개 변수를 지정하십시오.
...
providers: [
Bar,
{provide: Base, useClass: Foo, deps:[Bar]}
],
...
그것은 작동하지 않습니다, 그것은 이상적이지 않습니다. 그리고 제가 여기서 무엇을 놓치고 있는지 궁금합니다. 또한 아무 이유없이 Bar
을 주입하고 싶지 않습니다.
도움을 주시면 감사하겠습니다. 건배!
다음을 확인하십시오. https://github.com/rangle/angular-2-aot-sandbox – echonax