【发布时间】:2015-09-12 16:25:30
【问题描述】:
我在 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.splice($rootScope.stuff[id], 1);我收到错误“TypeError: $rootScope.stuff.splice is not a function.” -
为什么你认为它不起作用?有错误吗?
-
只是为了确认-您将要传递给删除方法的参数命名为“id”,但实际上传递的是要删除的对象的索引,对吗? $rootScope.deleteStuff = 函数(索引)
-
Splice 仅适用于数组,对吗? $rootScope.stuff 只是一个对象。
标签: javascript angularjs object angularjs-rootscope