gpt4 book ai didi

javascript - 在 AngularJS 中删除一个对象

转载 作者:行者123 更新时间:2023-11-28 13:23:43 25 4
gpt4 key购买 nike

我在 AngularJS 中有一个 $rootScope 对象,如下所示:

$rootScope.stuff = {
someId: {
name: "Patrick",
age: 105
},
anotherId: {
name: "Joseph",
age: 94
}
};

我定义了一个函数,将对象添加到 $rootScope.stuff,并且它工作正常:

$rootScope.addSomeStuff = function(id, data) {
$rootScope.stuff[id] = data;
};

但是,我还有一个尝试删除的函数(基于 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete ),但它不起作用:

$rootScope.deleteStuff = function(id) {
delete $rootScope.stuff[id];
};

当我检查$rootScope.stuff[id]时,我得到了我想要删除的正确对象。我也尝试过拼接,但这会抛出一个错误,就像我想象的那样。有什么建议么?谢谢。

最佳答案

将对象改为对象数组,然后传入要删除的对象的索引:

$rootScope.stuff = [
someId: {
name: "Patrick",
age: 105
},
anotherId: {
name: "Joseph",
age: 94
}
];



$rootScope.deleteStuff = function(index) {
delete $rootScope.stuff[index];
};

HTML(假设这是通过 ng-repeat 渲染的):

<button ng-click="deleteStuff($index)"></button>

编辑

如果你需要将数据保存为对象,那么这将是一个很难使用的数据结构,因为每个对象的 ID 实际上不是一个 ID,而是一个带有名称和年龄的对象。所以,我实际上不知道是否可以删除整个对象。您可以删除名称和年龄,但如果没有整个对象的唯一标识符,我不知道如何删除对象本身。

关于javascript - 在 AngularJS 中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31060926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com