我有以下小提琴设置来演示我正在经历的事情。
http://jsfiddle.net/BjornJohnson/ndxnG/25/
我的控制器使用这些对象:page => rows => columns =>件。页面有行。一行有列。一列有碎片。
有一个自定义指令(“piece”)。该指令的要点是能够根据作品的“类型”提供不同类型的HTML元素(所谓的动态模板)。
当我从列中删除碎片时,我一直遇到问题。我正在修改模型,但它没有反映在视图中。当ng-repeat在包装器上时它起作用,但在自定义指令本身上没有,所以我认为有些东西与ng-repeat指令发生冲突。
我提前为使用全部大写字母道歉,但我不能使用适用于NG-REPEAT的WRAPPER DIV :)
有问题的代码都在视图和指令中。
以下是自定义指令的一部分:
var template = templates[scope.piece.key];
var replacement = $($compile(template)(scope));
element.replaceWith(replacement);
以下是视图的一部分:
<div ng-repeat="column in row.data.columns" ng-class="column.data.clss">
<!-- notice wrapper for ng-repeat - THIS VIOLATES MY REQUIREMENTS -->
<div ng-repeat="piece in column.data.pieces">
<piece></piece>
</div>
</div>
与... 的
<div ng-repeat="column in row.data.columns" ng-class="column.data.clss">
<!-- notice ng-repeat on custom directive -->
<piece ng-repeat="piece in column.data.pieces"></piece>
</div>