我很难 运行 $apply
i have summ difficult to run $apply
当我点击其中一个时我有元素列表,我填充模板然后我将它复制到新的 DIV,我得到一个空模板,当我使用 $scope.$apply()
我得到一个错误。
$scope.tache_list.forEach(element => {
$scope.var1 = element;
$scope.$apply();
$('#div2').append($("#div1").html());
});
我得到了Error $rootScope:inprog
,我能做什么?
请看下面article关于$digest和$apply
您的 inprogress
错误是因为您从 $apply block
内部调用 $apply()
。您只想从开始新回合的 outside
angular 代码调用 $apply 。因此,如果您的 forEach 中有一个 setTimeout()
,您可以在 setTimeout 中调用 $apply 来告诉 angular 您希望它更新。
将您的 $scope.$apply 调用包装在 $timeout 函数中。
$timeout(function(){
$scope.$apply()
});
原因:摘要循环将移至事件循环并在现有循环完成时执行。
我通过
解决了这个问题
$timeout(function(){
$scope.$apply()
})
.then(function(){
...
});
谢谢大家。
当我点击其中一个时我有元素列表,我填充模板然后我将它复制到新的 DIV,我得到一个空模板,当我使用 $scope.$apply()
我得到一个错误。
$scope.tache_list.forEach(element => {
$scope.var1 = element;
$scope.$apply();
$('#div2').append($("#div1").html());
});
我得到了Error $rootScope:inprog
,我能做什么?
请看下面article关于$digest和$apply
您的 inprogress
错误是因为您从 $apply block
内部调用 $apply()
。您只想从开始新回合的 outside
angular 代码调用 $apply 。因此,如果您的 forEach 中有一个 setTimeout()
,您可以在 setTimeout 中调用 $apply 来告诉 angular 您希望它更新。
将您的 $scope.$apply 调用包装在 $timeout 函数中。
$timeout(function(){
$scope.$apply()
});
原因:摘要循环将移至事件循环并在现有循环完成时执行。
我通过
解决了这个问题$timeout(function(){
$scope.$apply()
})
.then(function(){
...
});
谢谢大家。