Я делаю это в коде для обработки нескольких представлений из нескольких компонентов
https://stackblitz.com/edit/angular-cy8jza (проверьте консоль на наличие ошибки)
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)
, но эта работает в стеке.Это.Я должен сделать это, чтобы все работало:
this.OnViewChanged$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewAdded$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewRemoved$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewChanged$.subscribe();
this.OnViewAdded$.subscribe();
this.OnViewRemoved$.subscribe();
Есть ли способ избежать этого?