删除 AngularJS 中的对象
Removing an object in AngularJS
我在 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]
时,我得到了我想要删除的正确对象。我也尝试过 splice,但是会像我想象的那样抛出一个错误。有什么建议么?谢谢。
将对象改为对象数组,然后传入要删除的对象的索引:
$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,而是一个具有名称和年龄的对象。所以,我实际上不知道是否可以删除整个对象。您可以删除姓名和年龄,但没有整个对象的唯一标识符,我不知道如何删除对象本身。
我在 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]
时,我得到了我想要删除的正确对象。我也尝试过 splice,但是会像我想象的那样抛出一个错误。有什么建议么?谢谢。
将对象改为对象数组,然后传入要删除的对象的索引:
$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,而是一个具有名称和年龄的对象。所以,我实际上不知道是否可以删除整个对象。您可以删除姓名和年龄,但没有整个对象的唯一标识符,我不知道如何删除对象本身。