Я создал сервис ServiceA
и ComponentA
. ServiceA
необходимо подписаться на queryParams
из ActivatedRoute
, но я хочу сделать это условно, и условие - это данные резолвера, которые предоставляются для ComponentA
.
Мое решение - проверить условие в onInit
из ComponentA
и на его основе подпишитесь ServiceA
на queryParams
. Однако сначала я хотел подписаться на queryParams
в конструкторе службы и как-то внедрить данные позже. Что вы думаете? Спасибо.
class ServiceA {
constructor (private _route: ActivatedRoute) {}
subscribeToQueryParams() {
this._route.queryParams
.subscribe(params => {
...
});
}
}
class ComponentA implements OnInit {
constructor (private serviceA: ServiceA, private _route: ActivatedRoute) {}
ngOnInit() {
this._route.data.subscribe(condition => {
if(condition) {
this.serviceA.subscribeToQueryParams();
}
});
}
}