angularjs - IE 浏览器提示 AngularJS $apply()

标签 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)

最佳答案

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

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

修复- $超时(函数(){ 在这里写下你的代码.. },0)

关于angularjs - IE 浏览器提示 AngularJS $apply(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37809023/

相关文章:

javascript - Angular .js :12759 : OPTIONS 405 (Method Not Allowed)

angularjs - Firebase 防止 "Password"注册垃圾邮件

javascript - CSV 文件无法在 Excel 中使用 ngCsv 正确打开

javascript - 在 $rootScope.$apply() 完成解决 promise 之前执行测试规范

java - Spring MVC - AngularJS - 文件上传 - org.apache.commons.fileupload.FileUploadException

javascript - 错误 : Route. put() 需要回调函数,但得到了 [对象未定义]

javascript - 如何使用 javascript、Angular 解析 doc/docx 文件

angularjs - 使用 Material 使用<md-sidenav>时如何将工具提示放在右边?

css - 使用服务在 Angular Controller 之间传递数据

javascript - Angular Batarang 适用于不使用 ng-app 的应用