【发布时间】:2020-10-02 02:58:16
【问题描述】:
我是 Angular 的新手。我有一项服务需要订阅另一个服务提供的主题。如果这是一个组件,我会在组件的 ngOnInit 方法中创建订阅。不过,服务不需要 NgOnInit。我创建了一个初始化方法来创建订阅,但我不确定从哪里最好地调用它。我已经看到它做了两种方式:
1) 在服务构造函数中调用initialise方法
2) 将服务注入到 app.component 中,并在 app.component 的 ngOnInit 方法中调用服务初始化方法,例如
方法一:
export class MyService{
constructor(private myRequiredService: RequiredService) {
this.initialiseSubs();
}
initaliseSubs(){
//code to set up subscriptions
}
}
方法二
export class MyService{
constructor(private myRequiredService: RequiredService) {}
initaliseSubs(){
//code to set up subscriptions
}
}
export class AppComponent implements OnInit{
title = 'my-app';
constructor(private myService:MyService){}
ngOnInit(){
this.myService.initialiseSubs();
}
}
这两种方法似乎都有效,但我欢迎就哪种方法更可取提出建议。提前致谢。
【问题讨论】:
标签: angular service constructor initialization ngoninit