在用@Injectable()
注释的服务中,是否可能拥有生命周期钩子?
我本来以为像这样的服务会调用生命周期钩子,但事实证明我错了,它似乎只适用于@Component
。在依赖注入创建/销毁服务时,有没有一种方法可以让服务知道并被通知呢?
import {Component, Injectable, OnInit, OnDestroy} from 'angular2/core';
@Injectable()
export class SampleService implements OnInit, OnDestroy {
ngOnInit() {
console.log("OnInit")
}
ngOnDestroy() {
console.log("OnDestroy")
}
}
@Component({
selector: "sample",
template: "<div>Sample Component</div>",
providers: [ SampleService ]
})
export class SampleComponent {
constructor() { private _sampleService: SampleService }
}
ngOnInit
钩子放在您的主应用程序组件上,这将调用注入的服务来启动它。基本上使用主应用程序组件来启动服务,这将使您的部分保持不变。这一切都取决于观点。;) - Guy Park