Angular2 - 使用函数更新NGX-DataTable“表达式已更改...”
问题描述:
我有两个表。我的目标是按下第一张桌子上的一排按钮,让它调用一个函数,然后让该函数将该行添加到我的第二张桌子上。Angular2 - 使用函数更新NGX-DataTable“表达式已更改...”
现在我的代码如下所示:
<ngx-datatable
class='material'
[rows]='rowsAll'
...
>
<ngx-datatable-column
...
>
<ng-template
...
>
<button (click)="addRow(value)">
Add
</button>
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
<ngx-datatable
class='material'
[rows]='rowsSelected'
...
>
</ngx-datatable>
addRow(selectedRow){
// Get row via value
...
// Add Row
this.rowsSelected.push(selectedRow);
this.ref.markForCheck();
}
和它的作品,但我得到这个错误,每当我点击偶数行:这是检查后
“表达改变了以前值:'datatable-body-row datatable-row-odd'。当前值:'datatable-body-row datatable-row-even'。“
在做了一些研究之后,我认为addRow()更新第二个表会导致更改而不检查更改,这就是为什么我添加了this.ref.markForCheck() - 但这似乎没有做出任何改变。所以我仍然失去了如何解决这个问题。
是否有正确的方式让我更新第二张表的行或者我应该不断尝试手动触发检查后更新第二张表,因为我现在正在做?或者我只是误解别的东西?感谢您的帮助,我很感激!
答
如果您重新分配了rowsSelected变量而不是推送到数组,那么应该触发角度变化检测并更新表格。
this.rowsSelected = [...this.rowsSelected, selectedRow];