【发布时间】:2018-07-11 10:30:21
【问题描述】:
我在Component A 中加载网格。在Component B 中,我正在修改一个值,该修改后的值应该反映在Component A 中。
使用Subject 我可以成功地将修改后的值设置为Component A,但不会显示更新后的值。
请帮帮我,我遇到了这个问题。
下面是我的代码
setTimeout(() => {
this.sessionWatch.transitDaysAvg.subscribe((newValue) => {
if (newValue) {
// newValue is 6 Old value is 1
var rowNode = this.gridOptions.api.getRowNode("0");
rowNode.setDataValue("transitLink.businessDays", newValue);
this.gridOptions.api.refreshCells({
force: true
});
}
});
}, 1000);
<div role="row" row-index="0" comp-id="602">
<div tabindex="-1" role="gridcell" comp-id="753" col-id="transitLink.businessDays">1</div>
</div>
【问题讨论】:
-
那么你的组件应该是子父关系,你可以使用
@Input和@Output来接收或发出值。 -
我已经在使用主题,我可以访问父组件中的子数据。唯一的问题是在该特定列中显示更新的值
-
使用
Subject有点可观察的东西,所以你需要订阅那个可观察的,并且在可观察中,每次你需要调用可观察的next()来更新值,这很好但需要更多无用的代码(对于这种情况,我说它没用),因为 Angular 为我们提供了@Input和@Output用于父子交互,这很简单,不需要像Subject或Observable这样的额外内容。 -
是的,但我的问题是用新值更新单元格。这就是我面临的问题。