У меня есть виджет, который я создаю, используя ng-repeat
. Первоначальное создание работает нормально, но после этого оно перестает обновляться. Вот отрывок из index.html
:Переведенный элемент не удаляется при удалении элемента списка при использовании ng-repeat
<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
, но отображаемые элементы не меняются. Есть что-то, что мне не хватает в моей директиве?
Демо: Plunker
не должны '' template' быть templateUrl'? –
@JosephSilber ах да, и это действительно так. Спасибо, я исправил это в вопросе. – z0r
@Arun, Спасибо за демонстрацию Plunker! Я замечаю, что если шаблон включен в директиву без использования templateUrl, он, похоже, работает ... – z0r