gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:21:31 26 4
gpt4 key购买 nike

我是 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 already in progress。

代码在没有循环的情况下使用时工作正常,如下所示: 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.

您已经在 Controller 和 Angular 范围内。因此无需使用 $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] = [];
});

关于javascript - 在循环内的 AngularJs 中创建动态范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29714134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com