javascript – 在循环中的AngularJs中创建动态范围变量

前端之家收集整理的这篇文章主要介绍了javascript – 在循环中的AngularJs中创建动态范围变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Angular.js的新手,我试图在for循环中的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已经在进行中.

当没有循环使用时,该代码可以正常工作,如下所示:
Setting dynamic scope variables in AngularJs – scope.<some_string>

我最终正在寻找$scope.list1 = []和$scope.list2 = []作为2个独立的数组.

任何潜在客户都会很棒.谢谢.

解决方法

The above code throws an error saying: $digest already in progress.

你已经在控制器和角度范围.所以不需要使用$scope来触发摘要循环$apply().即使您必须检查$$阶段,然后申请.

if (!$scope.$$phase) $scope.$apply()

但是对于您的场景,它根本不是必需的

$scope.lists = [{listName: 'list1'},{listName: 'list2'}];

angular.forEach($scope.lists,function(item) {
    var listName = item.listName;
    $scope[listName] = [];
});

猜你在找的JavaScript相关文章