Angular 7 Связь через сервис подписки вызывается дважды - PullRequest
0 голосов
/ 20 февраля 2019

Я использую angular 7, пытаясь связаться с компонентом, который не является parent-child.Поэтому я сообщаю об этом через службу

service.ts

Istoggle=false; 
@Output() change: EventEmitter < boolean > = new EventEmitter();
toggle() {
    this.Istoggle= !this.Istoggle;
    this.toggle.emit(this.Istoggle);
}

search.ts

submit():void{
  this.service.toggle();
}

Home.ts

ngOnInit() {    
   this.service.change.subscribe(_toggle=> {
           //some code here
    }
}

поэтому, когда я нажимаю на кнопку «Отправить» в компоненте «Домой», переключатель подписывается, получает удар дважды

1 Ответ

0 голосов
/ 20 февраля 2019

как я вижу, у вас есть 3 поля с одинаковым именем в вашем сервисе.2 из них пропущены.вы можете сделать

value=false; 
search: EventEmitter < boolean > = new EventEmitter();
toggle() {
   this.value = !this.value;
   this.search.emit(this.value);
}

в вашем сервисе и в компоненте:

ngOnInit() {    
  this.service.search.subscribe(value => {
       //some code here
  }
}

обратите внимание, что я удалил @Output () decorator.он используется только внутри компонентов только для связи родитель-потомок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...