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

标签 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

关于javascript - 从列表 : AngularJs 中删除当前节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963690/

相关文章:

javascript - Angularjs 和 Jasmine : testing with multiple instances of the same service

javascript - 使用 Select2 而不是实际选择时不会触发 WooCommerce 事件

javascript - AngularJS 选择必需

javascript - 按钮单击事件在页面重新加载时触发

javascript - 在确认框中重定向到另一个页面

html - 在 Angularjs 和 express 中路由

javascript - "Cannot read property ' 直到在 Angular 路由段中解决 ' of undefined"?

javascript - 使用 Angular,我应该在哪里存储常量?

javascript - 如何使用 JavaScript 在 AngularJS 2.0 中调用 Restful API?

javascript - 找不到 jquery 标签页