0

を使用してインスタンス化するウィジェットがありますng-repeat。最初の作成は正常に機能しますが、その後は更新が停止します。からの抜粋は次のindex.htmlとおりです。

<div>
  <x-node ng-repeat="node in nodes"></x-node>
</div>

パーシャル/node.html:

<div>{{node.name}}</div>

そしてディレクティブ:

angular.module('directive', []).directive('node', function() {
    return {
        restrict: 'E',
        scope: true,
        templateUrl: 'partials/node.html',
        replace: true,
        compile: function(tElement, tAttrs, transclude) {
            return {
                post: function(scope, iElement, iAttrs) {
                    scope.$on('$destroy', function(event) {
                        console.log('destroying');
                    });
                }
            };
        }
    };
});

コンソールでノードのリストを次のように変更すると:

var e = angular.element($0);
var s = e.scope();
s.nodes.splice(1,1);
s.$apply()

...その後、$destroyコールバックが実行されますが、レンダリングされた要素は変更されません。ディレクティブに欠けているものはありますか?

デモ:プランカー

4

1 に答える 1