Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';t通过循环为角度范围变量指定新值_Javascript_Angularjs - Fatal编程技术网

Javascript 我能';t通过循环为角度范围变量指定新值

Javascript 我能';t通过循环为角度范围变量指定新值,javascript,angularjs,Javascript,Angularjs,我真的不明白为什么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

我真的不明白为什么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}]
功能分配(项目){
项目2=10;
项目1=20;
}
对于(变量i=0;i<$scope.container.items.length;i++){
$scope.container.items[i].var1=10;
}
对于(变量i=0;i<$scope.container.items.length;i++){
分配($scope.container.items[i]);
console.log($scope.container.items[i].var2);//10
console.log($scope.container.items[i].var1);//20
}
log($scope.container.items);
//[{'var2':10,'var1':10},
//{'var2':10,'var1':10},
//  ...
//{'var2':10'var1':10}]

老实说,Angularjs不清楚这个问题,我希望尽快解决。我试过使用$apply(将调用包装到函数assign),但似乎也不起作用。你知道发生了什么吗?

看起来就像你在中预期的那样运行(上一个console.log报告20,10)。也许你可以看看fiddle,看看它与代码的其他部分相比如何?@KayakDave你的例子是正确的,但现在我意识到存在一个异步函数,它在'assign'函数中被调用,该函数会更改值​​几毫秒后。。。你的例子让我相信角度不是问题,非常感谢你!