我很难 运行 $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(){
  ...
});

谢谢大家。