更新对象数组angularjs中的对象

时间:2017-05-19 09:45:02

标签: java angularjs loops

我试图根据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;
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

此代码是否应该更新对象的name属性?

如果是的话

您应该更改for循环的这一行:

objects[i] = data;

要:

objects[i].name = data;

如果没有

您正在尝试替换正在迭代的对象。它可能会在循环中产生问题。如果是这样,您最好更新每个属性,而不是尝试覆盖整个对象。