Angular 未更新 Dev Extreme 数据网格列和视图
Angular not updating with Dev Extreme data-grid columns and views
component.html
<dx-data-grid>
<dxi-column *ngFor="let column of columns">
// creating columns
</dxi-column>
</dx-data-grid>
component.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
}
在设置datagrid状态时,如果state中的列在datagrid中还不存在(例如state有5列而datagrid只有3列),那么在设置状态时,datagrid会过滤掉它们。
所以在这个例子中(我认为正在发生的事情)
- 正在设置列
- 页面尚未创建列
- datagrid 没有更新的列
- 设置状态时,数据网格列为空,因此正在过滤状态列。
我试过研究 ngZone 和 changeDetectorRef,但我无法让它正常工作,我不确定这些在这种情况下是否有帮助。
尝试如下操作。设置一个 ChangeDetectorRef 并在您有当前评论的地方调用 detectChanges。
constructor(private cd: ChangeDetectorRef) {}
public someFn() {
this.cd.detectChanges();
// ngOnChanges will be called
}
信息来自:This Article
component.html
<dx-data-grid>
<dxi-column *ngFor="let column of columns">
// creating columns
</dxi-column>
</dx-data-grid>
component.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
}
在设置datagrid状态时,如果state中的列在datagrid中还不存在(例如state有5列而datagrid只有3列),那么在设置状态时,datagrid会过滤掉它们。
所以在这个例子中(我认为正在发生的事情)
- 正在设置列
- 页面尚未创建列
- datagrid 没有更新的列
- 设置状态时,数据网格列为空,因此正在过滤状态列。
我试过研究 ngZone 和 changeDetectorRef,但我无法让它正常工作,我不确定这些在这种情况下是否有帮助。
尝试如下操作。设置一个 ChangeDetectorRef 并在您有当前评论的地方调用 detectChanges。
constructor(private cd: ChangeDetectorRef) {}
public someFn() {
this.cd.detectChanges();
// ngOnChanges will be called
}
信息来自:This Article