Я делаю это в коде для обработки нескольких представлений из нескольких компонентов
https://stackblitz.com/edit/angular-cy8jza?file=src/app/app.service.ts (проверьте консоль на наличие ошибок)
export class ViewGroup {
_onViewChanged: any;
OnViewChanged$ : Observable<any>;
_onViewAdded: any;
OnViewAdded$ : Observable<any>;
_onViewRemoved: any;
OnViewRemoved$ : Observable<any>;
viewsSet = new Set<string>();
currentView = "";
previousView = "";
constructor(){
this.OnViewChanged$ = Observable.create(obs => this._onViewChanged = obs);
this.OnViewAdded$ = Observable.create(obs => this._onViewAdded = obs);
this.OnViewRemoved$ = Observable.create(obs => this._onViewRemoved = obs);
}
}
где-то в коде, который я делаю
this._availableView.set(name, new ViewGroup());
, а затем позвоните
this._availableView.get(group)._onViewAdded.next(view);
но я не могу назвать следующий по этому поводу, скажем, неопределенный.
Это точно такая же процедура, как у
this.onGroupAdded$ = Observable.create(e => this._onGroupAdded = e)
но этот работает в stackblitz