我在编译模板和非编译模板时遇到了一些问题。
<div>
<condition ng-repeat="condition in conditions"></condition>
</div>
生成以下 HTML:https ://gist.github.com/anonymous/2064c92e990a33ffe57e
当$scope.conditions
更改时 - 并且只有第一次$scope.conditions
更改 - 此代码在 angular.js v1.2.0-2fe5a2d 中执行(也不适用于稳定版本,因此升级):
if (block.startNode == nextNode) {
// do nothing
} else {
// existing item which got moved
$animate.move(block.elements, null, jqLite(previousNode));
}
其中block.startNode.nodeName == 'CONDITION'
似乎指的是预编译的模板。当代码正常运行时 - 这是每次但第一次 - block.startNode.nodeName == 'DIV'
。在这两种情况下 nextNode.nodeName == 'DIV' 在正常工作时不会 $animate.move 元素完全移出 DOM。这会使模型充满元素,而视图没有反映这一点。它是一个角虫吗?
有没有其他人经历过这个?有什么想法吗?
** 我应该提到我通过更改对象上的 $$hashKey “解决了”这个问题。是的,我觉得很脏。**