Я получил эту простую службу:BehaviorSubject и условный компонент отображения
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable()
export class HighlightsService {
private _highlitTab: string = '';
highlitTab$: BehaviorSubject<string> = new BehaviorSubject(this._highlitTab);
public get tab(): string {
return this._highlitTab;
}
public set tab(val: string) {
this._highlitTab = val;
this.highlitTab$.next(this._highlitTab);
}
}
который установлен в моих закладках:
(select)="highlightsService.tab = 'show component0'
Сейчас, на мой взгляд, который показывает несколько директив, как я условно показать им?
<app-component0 [hide]="highlightsService.highlitTab$ | async"></app-component0>
<app-component1 [show]="highlightsService.highlitTab$ | async"></app-component0>
Очевидно, что не будет работать, потому что нет ===
. Есть ли ngSwitch
эквивалент?
Как я могу условно показать Component
с по значению BehaviourSubject
?
Спасибо, однако это сработало бы, однако тогда мне понадобился бы шаблон 'onInit' /' onDestroy' для обработки un/subscribe. Труба 'async' работает BTW. То, что я ищу, - это решение со всей логикой в Service и component.html. Будет держать вещи чистыми. –
Я не совсем понимаю вашу оппозицию логике в компоненте. Удачи. – threeve