我在编译与非编译模板上使用角色时遇到了一些麻烦。
<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来“解决”这个问题。是的,我觉得很脏。 **