psn*_*nan 0 javascript object angularjs angularjs-rootscope
我在AngularJS中有一个$ rootScope对象,如下所示:
$rootScope.stuff = {
someId: {
name: "Patrick",
age: 105
},
anotherId: {
name: "Joseph",
age: 94
}
};
Run Code Online (Sandbox Code Playgroud)
我有一个函数定义,将对象添加到$ rootScope.stuff,它工作正常:
$rootScope.addSomeStuff = function(id, data) {
$rootScope.stuff[id] = data;
};
Run Code Online (Sandbox Code Playgroud)
但是,我也有一个试图删除的功能(基于https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete),它不起作用:
$rootScope.deleteStuff = function(id) {
delete $rootScope.stuff[id];
};
Run Code Online (Sandbox Code Playgroud)
当我检查$rootScope.stuff[id]我得到了我想删除的正确对象.我也尝试过拼接,但是它会像我想的那样抛出一个错误.有什么建议?谢谢.
将对象更改为对象数组,然后传入要删除的对象的索引:
$rootScope.stuff = [
someId: {
name: "Patrick",
age: 105
},
anotherId: {
name: "Joseph",
age: 94
}
];
$rootScope.deleteStuff = function(index) {
delete $rootScope.stuff[index];
};
Run Code Online (Sandbox Code Playgroud)
HTML(假设这是通过ng-repeat呈现的):
<button ng-click="deleteStuff($index)"></button>
Run Code Online (Sandbox Code Playgroud)
编辑
如果您需要将数据保留为对象,那么使用它将是一个困难的数据结构,因为每个对象的ID实际上不是ID,而是具有名称和年龄的对象.所以,我实际上不知道是否可以删除整个对象.您可以删除名称和年龄,但没有整个对象的唯一标识符,我不知道您将如何删除对象本身.
| 归档时间: |
|
| 查看次数: |
5878 次 |
| 最近记录: |