Почему эта функция выполняется дважды?
У нас есть древовидная структура.JSBIN здесь
в директиве
scope.add_child_task = function() {
scope.add_task(scope.path,"child of " + scope.member.name);
if (!scope.has_children) {
scope.add_children_element();
scope.has_children = true;
}
};
в контроллере
$scope.add_task = function(to,name) {
DataFactory.add_task(to,name);
};
Фабрика находит правильную позицию и добавляет узел.
При добавлении дочернего элемента в узлы с существующими дочерними элементамис добавлением двух детей, и я нене понимаю почему.
Благодарю.
РЕДАКТИРОВАТЬ Я могу проигратьhas_children
и он все еще дает тот же результат
Ссылка участника functin
link: function (scope, element, attrs) {
element.append("");
$compile(element.contents())(scope);
scope.get_path = function() {
var temp = scope.$parent.get_path();
temp.push(scope.member.name);
return temp;
};
scope.path = scope.get_path();
scope.add_child_task = function() {
scope.add_task(scope.path,"child of " + scope.member.name);
};
}
РЕДАКТИРОВАТЬ 2 Также пропущены циклы for - просто обмен ссылками, ничего не осталось, кроме функции, выполняемой дважды!