当组合ng-repeat和custom指令时,Angular JS模型更改未反映在视图中

时间:2014-02-07 14:41:40

标签: javascript angularjs angularjs-directive

我有以下小提琴设置来演示我正在经历的事情。

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>

0 个答案:

没有答案