如果您检查以下 jsfiddle,您将看到我遇到的问题的示例。
我的问题是,当一个 ng-repeat 有一个非常简单的数据类型来驱动它时,例如一个数字数组,例如[1..10]
当数组更新时,angularjs 不知何故知道数据值没有改变,因此不会重绘行 DOM。这意味着诸如下拉框之类的 UI 片段可以与 setInterval 结合使用,从而导致数据刷新。
一切都很好。
但是,如果我更改 ng-repeat 后面的数据结构以包含复杂对象,例如[{"i" : 1}..{"i" : 10}]
angularjs 会完全重绘该行(即使值没有改变,尽管对象引用当然有),因此如果选择了下拉菜单,则html 通过重新绘制行被破坏,因此用户选择的 UI 体验很差。
尝试摆弄选择选项并单击下拉箭头以了解我的意思。
是否有可能以某种方式阻止这种行为,以便 DOM 仅在发现行数据值发生某种变化时才重绘?