Я создал дочерний компонент и несколько раз использовал его в компоненте root. Теперь проблема в том, что когда я обновляю значение переменной в одном из компонентов, это изменение отражается во всех других компонентах. Как мне это остановить? Я не могу понять, что здесь происходит!
Пожалуйста, найдите stackblitz для проблемы
root компонент html в компонент root
<hello></hello>
<hello></hello>
компонент привет html
<div class="green-box" *ngIf="green; else red"></div>
<ng-template #red>
<div class="red-box"></div>
</ng-template>
<button (click)='changeColor()'>Change Color</button>
компонент привет ts
export class HelloComponent implements OnInit {
green: boolean = true;
constructor(
private changeService: ChangeService,
) {
}
ngOnInit() {
this.changeService.change$.subscribe((data: boolean) => {
this.green = data;
});
}
changeColor() {
this.changeService.changeColor(!this.green);
}
}
изменить сервис ts
export class ChangeService {
public changeSubjcet = new Subject();
public change$ = this.changeSubjcet.asObservable();
changeColor( value ) {
this.changeSubjcet.next( value );
}
}