У меня есть родительский компонент A и много (более 20) дочерних компонентов, все расширяющие A и находящиеся внутри <ng-content></ng-content>
.В компоненте A я устанавливаю значение переменной showContent
в нескольких местах.
Проблема в том, что я использую *ngIf="showContent"
во всех дочерних компонентах.Поскольку представления дочерних компонентов не обновляются при изменении значения в A, я могу либо:
A) использовать Output + EventEmitter, но я не хотел бы иметь
onValueChange(val: boolean) {
this.showContent = val;
}
в каждомдочерний компонент (20+ раз тот же код);
B) использовать асинхронный канал.Проблема в том, что я устанавливаю значение в подписках GET / POST
this.httpDataHandler.get<...>(...).subscribe(response => {
// lots of stuff
showContent = true;
});
Есть ли способ использовать асинхронный канал и удалить избыточный код из всех дочерних элементов?