初始化服务时是否可以执行某些代码。例如,当初始化服务产品服务时,我想执行此代码:
this.var = this.sharedService.aVar;
答案 0 :(得分:3)
除了构造函数之外,没有服务的生命周期钩子。
component/directive
Injectables是普通类(普通对象),因此它们没有特殊的生命周期。
@Injectable()
export class SampleService {
constructor() {
console.log('Sample service is created');
//Do whatever you need when initialized.
}
}
调用类的构造函数,这就是你的“OnInit”。至于破坏,服务并没有真正被破坏。
服务需要使用其他服务dependency injection
@Injectable()
export class HeroService {
private yourVariable: any;
constructor(private sharedService: sharedService) {
this.yourVariable = this.sharedService.aVar;
}
答案 1 :(得分:0)
我建议您在lifecycle hooks in Angular上阅读一些内容。虽然在构造函数中是一个选项,但最好将代码保留在变量初始化中,并使用ngOnInit生命周期钩子来进行类初始化工作。两者都是一种选择,但了解生命周期钩子是解决问题和思考你想要做的事情的一个很好的起点。