我正在尝试将服务的引用访问到我的静态方法中,如下所示:
export class myComponent {
constructor(private backend: BackendService) { }
public static myMethod() {
myComponent.backend.getData()
.subscribe(
data => { console.log(data) },
error => { console.error(error); }
);
}
}
我正在Property backend doesn't exist on type 'typeof myComponent'
如何访问backend
参考?
感谢。
答案 0 :(得分:1)
不确定为什么要这样做,可能看起来像糟糕的架构,但你可以通过以下方式实现这一点。
export class myComponent {
constructor(private backend: BackendService) {
this.constructor.backendService = backend;
}
public static myMethod() {
myComponent.backendService.getData()
.subscribe(
data => { console.log(data) },
error => { console.error(error); }
);
}
}
只有在组件初始化后调用静态方法时,这才有效。
答案 1 :(得分:1)
第一个也是最好的解决方案:只需要使用静态方法来使用您的服务。
另一个如果你真的想要做更难的简单事情;)
@NgModule....
export class AppModule
{
constructor(public injector: Injector)
{
myComponent.injector = injector;
}
}
然后在你的静态方法中;
var myService = myComponent.injector.get(BackendService);
myService.getData(....);