我正在使用ng Smarttable,并通过事件更改数据源数组(更改是数组内某个值的id更改)。问题是angular没有检测到这些更改,除非我悬停在页面上或点击某个地方,否则什么也不会发生。
所以更改在后台被正确应用,当我点击某个地方时才会"看到"这些更改。
因此,我可以手动点击很多次来查看属性的更改,但这是不希望的。
我尝试过:
1. 在更改数组的函数中使用ChangeDetectorRef(markAsChanged & DetectChange)
2. 一旦数组更改,手动创建一个单击事件
3. 使用Immutability(this.data = [...this.data];)
是否有可能像这样做?
所以更改在后台被正确应用,当我点击某个地方时才会"看到"这些更改。
因此,我可以手动点击很多次来查看属性的更改,但这是不希望的。
我尝试过:
1. 在更改数组的函数中使用ChangeDetectorRef(markAsChanged & DetectChange)
2. 一旦数组更改,手动创建一个单击事件
3. 使用Immutability(this.data = [...this.data];)
是否有可能像这样做?
this.renderer.refresh();
或者只使用ng smartable的功能?
编辑:看起来问题出在我这里。当你“刷新”smarttable时,你会得到一个承诺,在加载完成后才执行一次。
我没有使用过这个承诺。将普通的DetectChange()放在承诺里使它能够工作。
data
的数组,请在事件监听器中写入以下代码:this.data = [...this.data]
。 - Mehdi Benmoha