IE浏览器抱怨AngularJS $ apply()

时间:2016-06-14 10:09:01

标签: angularjs

您好我在本教程之后尝试将文件上传到服务:Upload files Angular,部分代码如下:

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中没有遇到此类错误,以下代码运行正常。我已尝试过此操作:get rid of $apply error,然后错误未显示,但以下代码仍然无法执行。我怎么解决这个问题?谢谢! (我使用的是IE11)

1 个答案:

答案 0 :(得分:0)

当我们强行尝试同时运行两个摘要周期时会出现这种错误。

实际上每当我们改变模态时,angular会自动运行摘要周期以使这些更新的值反映在视图中。 在使用$ scope。$ apply()时,你强烈要求angular再次运行它的摘要周期而不停止已经运行的摘要周期,这会引发错误。

<强>修复 - $超时(函数(){   在这里写代码.. },0)