我试图根据id值更新整个数组中的一个特定条目。如果我尝试使用for循环,它会显示一些不需要的输出。请让我知道可以做些什么。我尝试的示例代码如下,
angular.module('app').controller('MyController', function($scope) {
$scope.object = {
name: 'test',
objects: [
{id: 1, name: 'test1'},
{id: 2, name: 'test2'}
]
};
$scope.update = function(id, data) {
var objects = $scope.object.objects;
for (var i = 0; i < objects.length; i++) {
if (objects[i].id == id) {
objects[i].name = data;
break;
}
}
}
});
答案 0 :(得分:0)
此代码是否应该更新对象的name
属性?
您应该更改for循环的这一行:
objects[i] = data;
要:
objects[i].name = data;
您正在尝试替换正在迭代的对象。它可能会在循环中产生问题。如果是这样,您最好更新每个属性,而不是尝试覆盖整个对象。