我有一个数组的项目表达式,表达式,....我从数组中添加/删除了表达式,但ngRepeat没有正确地$compile该指令。
可能的原因是什么?
其中一个解决方案是,我有一个单独的表达式数组,我修改了它,每次更改时,我将“expression”重置为[]并设置新的数组,但在执行此操作时,UI元素会闪烁(首先摘要为[],然后超时(expression= new array))。
// Main
scope.list = [Expressions.new(), Expressions.new()];
//constructor Expressions
function Expressions(){};
Expression.prototype = {
id: 'generated',
list: [
Expression.new(), Expression.new(),...
]
};
//constructor Expression
function Expression(){};
Expression.prototype = {
id: 'generated',
val: ''
};<!-- Main Usage -->
<div ng-repeat="expressions in list track by $index" dir-expressions x-attrs="expressions"></div>
<!-- Expressions directive -->
<div class="Expressions_Content">
<ul ng-sortable="attrs.sortable">
<li ng-repeat="expression in attrs.items track by $index">
<div dir-expression x-attrs="expression"></div>
</li>
</ul>
</div>
<!-- Expression directive -->
<div>{{Value}}</div>
这是一个复杂的情况,所以我将在示例中放入一些代码片段。
发布于 2015-04-10 02:17:30
正如Sunil D指出的那样,使用track by expression.id而不是$index。
https://stackoverflow.com/questions/29533939
复制相似问题