Мне нужно зафиксировать событие изменения на моих ячейках (динамически заполненное), но только триггеры первого элемента функционируют «эврика». Кто-то знает, что я делаю неправильно?Изоляция угловой директивной области
Мой HTML:
<div ng-controller="TreeCtrl">
<tree family="treeFamily" done="eureka()">
</tree>
</div>
Вот мой контроллер:
module.registerController("TreeCtrl", function($scope) {
$scope.eureka = function() {
alert("it works!!");
}
$scope.treeFamily = {
name : "Parent",
children: [{
name : "Child1",
checked : true,
children: [{
name : "Grandchild1",
children: []
},{
name : "Grandchild2",
checked : true,
children: [{
name : "GrandGrandchild2",
checked : true,
children: []
}]
},{
name : "Grandchild3",
checked : false,
children: []
}]
}, {
name: "Child2",
checked : true,
children: []
}]
};
});
Моя директива:
module.registerDirective("tree", function($compile) {
return {
restrict: "EA",
scope: {
ngModel: '=',
ngChange: '&',
done: '&',
family: '=',
},
template:
'<p>{{ family.name }} <input type="checkbox" value="1" ng-model="family.checked" ng-change="done()"><button ng-click="done()">dsfdsfsd</button></p>'+
'<ul>' +
'<li ng-repeat="child in family.children">' +
'<tree family="child"></tree>' +
'</li>' +
'</ul>',
compile: function(tElement, tAttr) {
var contents = tElement.contents().remove();
var compiledContents;
return function(scope, iElement, iAttr) {
if(!compiledContents) {
compiledContents = $compile(contents);
}
compiledContents(scope, function(clone, scope) {
iElement.append(clone);
});
};
}
};
});
Спасибо!
С наилучшими пожеланиями
Здравствуйте Аарон, спасибо за ответ. Я попробовал изменить '&' с '=' в проделанной функции, но теперь «eureka()» запускается в вечном цикле при загрузке страницы. Вы знаете, почему? – manuelbcd
@manuelbcd hum ... Вы также изменили свой атрибут html done = 'eureka' from done = 'eureka()'? – Aaron
Вы правы, делая это, «вечный цикл» исправлен, но все еще не работает в моем примере. Тем не менее, в файле patbaker82 code snippet он отлично работает, и я не знаю, почему – manuelbcd