【问题标题】:Delete the current node from list : AngularJs从列表中删除当前节点:AngularJs
【发布时间】:2015-04-30 09:15:14
【问题描述】:

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: []}];
}]);

谁能帮忙。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多