gpt4 book ai didi

javascript - 无论 parent 和 child 如何,在两个组件之间共享数据 - angular2

转载 作者:行者123 更新时间:2023-11-29 23:38:26 25 4
gpt4 key购买 nike

我一直在使用 BehaviorSubject 在组件之间共享数据。比如说,相对 url/article 属于 ArticleComponent。然后是 ArticlelistComponent 中的/article/list,其中包含一个包含文章详细信息列表的表格。单击任意行时,我需要将该行详细信息传递给所有其他组件,这就是我的议程。我面临的问题是,ngOnInit 仅适用于页面重新加载。最初,只有默认的 {} 反射(reflect)在 articlecomponent 中,这只是我为 BehaviorSubject 设置的默认结果。当我单击表中的一行时,该数据不会在 ngOnInit 中自动更新和订阅。保留旧值 {}贯穿始终。我不确定将它放在哪里才能使更改立即反射(reflect)出来。请帮忙解决。我的代码如下:

文章列表.component.ts

getSpecificDetail(value){
this.articleService.getArticleDetail(value);
}

文章.服务.ts

 public articledata=new BehaviorSubject<Object>({});
currentdata=this.articledata.asObservable();
getArticleDetail(data){ //data comes from articlelist.component
return this.articledata.next(data);
}

文章.组件.ts

 ngOnInit(){
this.articleService.currentdata.subscribe(data=>{
this.data=data;
console.log(this.data);
})
}

编辑:我在 Angular2:RxJS Subject not responding to events 中扩展了我的观察

最佳答案

根据您对该数据的处理方式,另一种在绑定(bind)到该数据的组件之间共享数据的方法是利用 Angular 的变更检测,而不是使用您自己的 BehaviorSubject

import { Injectable } from '@angular/core';

@Injectable()
export class DataService {
serviceData: string;
}

我在这里有一篇关于它的博文:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

还有一个笨蛋:https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview

关于javascript - 无论 parent 和 child 如何,在两个组件之间共享数据 - angular2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com