我是Angular.js的新手,正在尝试在for Loop中的AngularJs中创建动态范围变量。如下所示:
$scope.lists=[{listName:'list1'},{listName:'list2'}];
for(var i=0;i<$scope.lists.length;i++){
var listName = $scope.lists[i].listName;
listName = $parse(listName);
listName.assign($scope,[]);
$scope.$apply();
}
上面的代码抛出一个错误说:$digest
已经在进行中。
使用该代码时,可以正常工作,而无需像在以下内容中那样仅进行循环:在AngularJs中设置动态范围变量-scope。<some_string>
我最终正在寻找$scope.list1=[]
和$scope.list2=[]
作为2个单独的阵列。
任何线索都将很棒。谢谢。
上面的代码抛出错误:$ digest已经在进行中。
您已经在控制器中并且处于角度范围内。因此,无需使用触发摘要循环$scope.$apply()
。即使您必须必须检查$$phase
,然后再申请。
if (!$scope.$$phase) $scope.$apply()
但是对于您的情况,根本不需要
$scope.lists = [{listName: 'list1'}, {listName: 'list2'}];
angular.forEach($scope.lists, function(item) {
var listName = item.listName;
$scope[listName] = [];
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句