您好,我正在尝试按照本教程将文件上传到服务: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/