как передать данные из одного компонента в другой в угловых, используя BehaviorSubject и Observables - PullRequest
0 голосов
/ 21 февраля 2019

Я написал сервис, который улавливает значение одного компонента, чтобы другой компонент мог получить это значение мгновенно.Предположим, что в component1 я отправляю значение «episodes» в виде строки (contentType), в DataService он печатает = console.log (contentType) // episodes

, если во второй раз я снова отправляю значение «songs» в виде строки из component1он печатает // песни в DataService, но не устанавливает значение для песен в поведениеSubject

в третий раз при передаче другого параметра, оно изменяется на песни и не соответствует последнему значению

Не принимаеттекущее значение, всегда предыдущее значение.В чем ошибка?

Компонент1 имеет следующий код

 contentType : string = "abc"
  this.ds.checkValue(contentType);

Компонент2 имеет следующий код:

  ngOnInit() {
   this.ds.contentTypeValue.subscribe(receivedType=> this.receivedType = 
   receivedType)

   };

Класс обслуживания

 export class DataService {

  private contentTypeBs =new BehaviorSubject<string>(null);
  contentTypeValue = this.contentTypeBs.asObservable();

  public checkValue(contentType: string) {
    console.log(contentType);
    this.contentTypeBs.next(contentType);
  }


  constructor() { }
  }

[1]: https://i.stack.imgur.com/Qp4F8.jpg
[2]: https://i.stack.imgur.com/VnZBh.jpg
...