我真的不明白为什么在迭代时,为什么angular不能为范围变量上的数组进行简单的动态赋值,我使用angular.js 1.1.5跟随脚本:
function assign(item){
item.var2 = 10;
item.var1 = 20;
}
for (var i=0; i < $scope.container.items.length; i++) {
$scope.container.items[i].var1 = 10;
}
for (var i=0; i < $scope.container.items.length; i++) {
assign($scope.container.items[i]);
console.log($scope.container.items[i].var2); // 10
console.log($scope.container.items[i].var1); // 20
}
console.log($scope.container.items);
// [{'var2': 10, 'var1': 10},
// {'var2': 10, 'var1': 10},
// ...
// {'var2': 10, 'var1': 10}]
说实话,Angularjs对这个话题并不清楚,我希望尽快解决。我已尝试使用$ apply(将调用包装到函数assign),但它似乎也不起作用。知道发生了什么事吗?