IE浏览器抱怨AngularJS$apply()

IE浏览器抱怨AngularJS$apply(),angularjs,Angularjs,您好,我正在尝试按照本教程将文件上载到服务:,其中一些代码如下: element.bind('change', function() { scope.$apply(function() { var file = element[0].files[0]; ... //some logic }); }); 它在Chrome和Safari上运行良好,但当我在IE上测试它时,它给了我以下错误: Error: [$rootScope:inprog] $ap

您好,我正在尝试按照本教程将文件上载到服务:,其中一些代码如下:

element.bind('change', function() {
    scope.$apply(function() {
        var file = element[0].files[0];
        ... //some logic
    });
});
它在Chrome和Safari上运行良好,但当我在IE上测试它时,它给了我以下错误:

Error: [$rootScope:inprog] $apply already in progress
关于这一行:

scope.$apply(function() {

下面的代码不会被执行。我在Chrome中没有遇到这样的错误,下面的代码运行良好。我试过:,然后错误没有出现,但是下面的代码仍然没有执行。我怎样才能解决这个问题?谢谢(我使用的是IE11)

当我们试图同时运行两个摘要循环时,就会出现这种错误

实际上,每当我们更改模式时,angular都会自动运行摘要循环,以使这些更新的值反映在视图中。 在使用$scope.$apply()时,您强制要求angular再次运行其摘要循环,而不停止已经运行的摘要循环,这会引发错误

修复- $timeout(函数(){ 在此处编写代码。
},0)

您是否尝试过
$timeout
?是什么触发了此错误:手动用户输入还是编程事件?