从列表中删除当前节点:AngularJs

时间:2015-04-30 09:15:15

标签: javascript angularjs

link to a short version of my batch file  我们可以添加新子节点及其子节点的链接,只能从父节点删除子节点。

我正在尝试删除所有子节点以及同一删除按钮中的当前节点。 (所有子节点都已成功删除,但我无法从列表中删除当前节点。)

我如何通过Angular Js来做到这一点。

    angular.module("myApp", []).
controller("TreeController", ['$scope', function($scope) {
    $scope.delete = function(data) {
        data.nodes = [];
    };
    $scope.add = function(data) {
        var post = data.nodes.length + 1;
        var newName = data.name + '-' + post;
        data.nodes.push({name: newName,nodes: []});
    };
    $scope.tree = [{name: "Node", nodes: []}];
}]);

任何人都可以帮忙。

1 个答案:

答案 0 :(得分:2)

要删除当前节点,您需要将其从父节点中删除,因此您需要在数据中存储对父节点的引用

data.nodes.push({name: newName,nodes: [], parent: data});

然后在delete()中,您可以访问父节点并自行删除:

$scope.delete = function(data) {
    var index = data.parent.nodes.indexOf(data);
    if(index > -1) {
        data.parent.nodes.splice(index, 1);
    }
};

更新了jsfiddle