相关疑难解决方法(0)

为什么这个函数执行了两次?

我有一个树形结构.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;
    }
};
Run Code Online (Sandbox Code Playgroud)

在控制器中

$scope.add_task = function(to,name) { 
    DataFactory.add_task(to,name);
};
Run Code Online (Sandbox Code Playgroud)

工厂正在找到正确的位置并添加节点.

将子项添加到具有现有子项的节点时,它会添加两个子项,我不明白为什么.

谢谢.

编辑 我可以输has_children,它仍然会产生相同的结果

更新了JSBIN

会员链接功能

link: function (scope, element, attrs) {            

            element.append("<collection></collection>"); 
            $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);
            };
        }
Run Code Online (Sandbox Code Playgroud)

编辑2也 改变了for循环 - 只是交换引用,没有剩下任何东西,但是一个函数被执行两次!

更新了JSBIN

javascript angularjs

7
推荐指数
1
解决办法
314
查看次数

标签 统计

angularjs ×1

javascript ×1