我想将服务注入另一个服务:
@Injectable()
export class Dispatcher {
}
@Injectable()
export class TodoStore {
constructor(@Inject(Dispatcher) dispatcher:Dispatcher){
}
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到错误:Dispatcher没有提供者!
谢谢.
Abd*_*yer 33
你需要在provide
某个地方提供服务.请参阅angular2 docs
您可以在bootstrap方法中提供它:
bootstrap(AppComponent,[TodoStore,Dispatcher]);
Run Code Online (Sandbox Code Playgroud)
或应用程序组件:
@Component({
...
providers:[TodoStore,Dispatcher]
}
...
Run Code Online (Sandbox Code Playgroud)
或者在任何其他组件中,根据您的需要.
此外,您不需要@Inject(Dispatcher)
在构造函数中.它与...基本相同
constructor(dispacher:Dispatcher){
}
Run Code Online (Sandbox Code Playgroud)
哦是的,欢迎来到SO :)
谢谢你的回复.
由于它不是Component,因此@Component(...)解决方案不适用.
bootstrap(AppComponent,[TodoStore,Dispatcher]);
Run Code Online (Sandbox Code Playgroud)
解决方案有效 但这使它成为main.ts
一个中心位置.
归档时间: |
|
查看次数: |
36249 次 |
最近记录: |