Мне интересно, можно ли использовать Observables в компонентах и какие другие компоненты могут подписаться?Угловой 2 - Использование наблюдаемых в компоненте для испускания значений другим компонентам
BugListComponent - компонент вводится в boot.ts файл, в котором я загрузить все свои услуги (где boostrap расположен)
import {Subject, BehaviorSubject} from 'rxjs/Rx';
viewBugList$: Subject<boolean>;
constructor() {
this.viewBugList$ = new BehaviorSubject<boolean>(false);
}
// Called from template, sends in 'true'
private enableIEview(enable: boolean) {
if(enable) {
this.viewBugList$.next(true);
}
}
BugListContainerComponent
import {BugListComponent} from '../buglist/bug-list.component';
initView: boolean;
constructor(private _bugListComp: BugListComponent) {
this.initView = false;
}
ngOnInit() {
this._bugListComp.viewBugList$.subscribe(e => {
if(e != null) {
this.initView = e;
}
});
}
Так , далеко «подписка» в BugListContainerComponent, похоже, не затрагивается, когда e .next вызывается из BugListComponent.
Ниже приведен обзор изображения:
Что мне не хватает? Спасибо!
Ага, так что я боялся. Таким образом, можно передать '@ output' из BugListComp в AppComp через SidebarComp? Затем '@ input' от AppCom до BugListContainerComp через MainContainerComp? Тогда, вероятно, проще просто создать сервис для него ^^ Спасибо за быстрый ответ кстати! – Sojye
Да, это возможно, но события не пузырятся. Поэтому вам нужно определить их на каждом уровне. Так что это было бы больно ... Да, создание сервиса, безусловно, проще ;-) –
Хорошо, спасибо! Для этих видов услуг, которые будут очень маленькими и будут излучать, например. true/false, было бы возможно собрать их в одной службе, если будет несколько подобных ситуаций? Или у вас есть одна услуга для каждого из них? – Sojye