Ich frage mich, ob es möglich ist, Observables in Komponenten zu verwenden, und welche anderen Komponenten können sie abonnieren?Angular 2 - Verwenden von Observablen in einer Komponente zum Ausgeben von Werten an andere Komponenten
BugListComponent - Komponente in den boot.ts injiziert Datei, wo ich alle meine Dienste laden (wo Bootstrap befindet)
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;
}
});
}
So , weit die 'subscribe' in der BugListContainerComponent scheint nicht betroffen zu sein, wenn th e.next wird von der BugListComponent aufgerufen.
Was bin ich? Danke!
Aha, so fürchtete ich. Es ist also möglich, eine '@ Ausgabe' von BugListComp über SidebarComp an AppComp zu übergeben. Dann "@ input" runter von AppCom zu BugListContainerComp via MainContainerComp? Dann ist es wahrscheinlich einfacher, nur einen Dienst dafür zu erstellen ^^ Vielen Dank für Ihre schnelle Antwort BTW! – Sojye
Ja, das könnte möglich sein, aber Ereignisse sprudeln nicht. Sie müssen sie also auf jeder Ebene definieren. Das wäre also schmerzhaft ... Ja, es ist definitiv einfacher, einen Dienst zu erstellen ;-) –
Ok, danke! Für diese Art von Diensten, die sehr klein sein werden und nur z. Wahr/falsch, wäre es möglich, diese in einem Dienst zu sammeln, wenn es mehrere ähnliche Situationen wie diese geben würde? Oder haben Sie einen Service für jeden von ihnen? – Sojye