我一直在使用 BehaviorSubject 在组件之间共享数据。比如说,相对 url /article 属于 ArticleComponent。然后是 ArticlelistComponent 中的 /article/list,其中包含一个包含文章详细信息列表的表格。单击任何行时,我需要将该行详细信息传递给所有其他组件,这就是我的议程。我面临的问题是,ngOnInit 仅适用于页面重新加载。最初,只有默认 {} 反映在文章组件中,这不过是我为 BehaviorSubject 设置的默认结果。当我单击表中的一行时,该数据不会在 ngOnInit 中自动更新和订阅。旧值 {} 被保留在整个过程中。我不确定将其放置在何处以使更改立即反映出来。请帮忙解决。我的代码如下:
articlelist.component.ts
getSpecificDetail(value){
this.articleService.getArticleDetail(value);
}
文章.service.ts
public articledata=new BehaviorSubject<Object>({});
currentdata=this.articledata.asObservable();
getArticleDetail(data){ //data comes from articlelist.component
return this.articledata.next(data);
}
文章.component.ts
ngOnInit(){
this.articleService.currentdata.subscribe(data=>{
this.data=data;
console.log(this.data);
})
}