如何使用BehaviorSubject和Observables将数据从一个组件传递到另一个组件

时间:2019-02-21 11:34:24

标签: angularjs-directive observable angular7 angular2-observables behaviorsubject

我编写了一项服务,可以从一个组件中获取价值,以便其他组件可以立即拥有该价值。 假设在component1中,我将值“ episodes”作为字符串发送(contentType) 在DataService中,它打印= console.log(contentType)//情节

如果第二次我再次从component1作为字符串发送值“ songs” 它在DataService中打印// songs 但不会将值设置为behaviorSubject

中的歌曲

第三次传递其他参数时,它会变成歌曲而不是最新值

它没有采用当前值,始终是先前的值。有什么错误?

Component1具有以下代码

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

component2具有以下代码:

  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

0 个答案:

没有答案