angular - Angular 未使用 Dev Extreme 数据网格列和视图进行更新
问题描述
组件.html
<dx-data-grid>
<dxi-column *ngFor="let column of columns">
// creating columns
</dxi-column>
</dx-data-grid>
组件.ts
public setupColumnsAndState(newColumns[]: any, state: any) {
columns = newColumns[];
// Is there something that could be done here to update datagrid columns?
this.datagrid.instance.state(state); //state has columns
}
设置数据网格状态时,如果状态内的列在数据网格中尚不存在(例如,状态有 5 列,数据网格只有 3 列),则在设置状态时,数据网格会将它们过滤掉。
所以在这个例子中(我认为正在发生的事情)
- 正在设置列
- 页面尚未创建列
- datagrid 没有更新的列
- 设置状态时,数据网格列为空,因此正在过滤状态列。
我已经尝试研究 ngZone 和 changeDetectorRef,但我无法让它正常工作,并且不确定这些在这种情况下是否会有所帮助。
解决方案
尝试类似以下内容。设置一个 ChangeDetectorRef 并在您有当前评论的地方调用 detectChanges。
constructor(private cd: ChangeDetectorRef) {}
public someFn() {
this.cd.detectChanges();
// ngOnChanges will be called
}
信息来自:本文
推荐阅读
- apache-kafka - 从消费者开始的主题中获取最新值,然后正常继续
- python - 如何打印数字小于 9 和数字大于 10 的项目?
- r - 增加 R 中 metafor 包的森林图输出中的图大小
- python - 如何像 np.random.seed 一样为 pd.sample 制作种子?
- java - 使用套接字循环时 Java Fx 无法正常工作
- maven - 无法解析 mojo org.apache.maven.plugins:maven-shade-plugin:3.0.0:shade 参数转换器的配置
- java - 数据流中的动态目标问题
- api - 使用 v2 OAuth 2.0 Linkedin API 点赞帖子/评论
- javascript - JavaScript calc 函数 - 切换到 Bootstrap4 后不再起作用
- angular - Angular 单元测试启动日历