を使用してインスタンス化するウィジェットがあります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
コールバックが実行されますが、レンダリングされた要素は変更されません。ディレクティブに欠けているものはありますか?
デモ:プランカー