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

Fiddle

 我们可以添加新子节点及其子节点的链接也可以从父节点中删除子节点.

我试图从同一个删除按钮删除所有子节点和当前节点. (所有子节点都已成功删除,但我无法从列表中删除当前节点.)

我怎么能通过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: []}];
}]);

谁能请帮忙.

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

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

点赞