当前位置: 首页 > 知识库问答 >
问题:

IE中出现10$digest()迭代错误。无法找出原因

沈永新
2023-03-14

我有一个功能,刚刚被报道在internet explorer中不起作用。不知道它有多长时间不起作用了,但我想它从一开始就起作用了。我可以在IE11中验证它。

我的应用程序使用angularjs 1.3.17。

表单上有一个名为重置的按钮。当他们点击它时,它调用vm。cancel(),如下所示:

function () {
    vm.working = true;
    vm.disableActions = true;
    manualEntryApi.deleteWageAccounts(vm.selectedEnterprise.RecordID)
    .success(
        function (data, status, headers, config) {
            vm.working = false;
            vm.disableActions = false;
            if (typeof (Storage) !== "undefined") {
                localStorage.setItem("filename", "");
            }
            window.location.href("/FormEntry/#/ManualEntry/?ID="+vm.selectedEnterprise.RecordID);                                             
    })
    .error(
        function (data, status, headers, config) {
            vm.working = false;
            vm.disableActions = false;
            vm.serverErrors = data;
            vm.serverErrorMessage = "Error clearing records.";
            vm.serverErrorMessage2 = "";        
            vm.openErrorModal = true;
    });
});

它将recordID发布到API,API在后端执行大量操作。只要成功,它就会返回一个200

成功后,它会将空字符串写入localstore,然后有效地执行页面刷新。您可以将window.location.href替换为window.location.reload(),因为它正在做同样的事情。

但是,在重载时,它给我的$digest循环错误。我以为可能是ng-init发生了什么,但是我注释了整个init代码块,它仍然出错。不知道发生了什么。

知道为什么会这样吗?我尝试升级到角1.4.0,但由于这是我继承的一个遗留应用程序,升级带来了很多意大利面和很多错误,所以我希望它能在1.3.17中工作。

我知道也有类似的帖子,通常都是这样的:OP在for循环中定义了一个数组,由于它重新消化了每个循环,所以得到了这个错误。但我现在在init上执行的唯一代码是:

    vm.model = {};
    vm.model.PaymentInfo = {};
    vm.selectedEnterprise = $location.search();
    vm.years = [];
    vm.selectedEnterprise.RecordID = $routeParams.ID;
    vm.EitOtherPageTotal = 0.0;
    vm.LstOtherPageTotal = 0.0;
    vm.WageOtherPageTotal = 0.0;
    vm.pageNumber = 1;
    vm.disableActions = false;
    vm.working = false;
    vm.openErrorModal = false;
    vm.serverErrors = [];
    vm.serverErrorMessage = "";
    vm.serverErrorMessage2 = "";
    vm.referenceName = "";
    vm.fileID = null;
    vm.sortOverride = null;
    vm.validFilename = true;
    vm.submitted = false; 

只是一些变量初始化。

共有2个答案

弘伟彦
2023-03-14

我读了一些其他的答案和类似的问题,接受的方法来重新加载一个页面在角是$route.reload();,也许这个方法和使用角期望事情发生的方式会有所帮助...

如何使用AngularJS重新加载或重新呈现整个页面

Angular JS: IE错误:达到10$digest()迭代。流产

毛正浩
2023-03-14

试试$window。地方重新加载();

 类似资料:
  • 问题内容: 我正在尝试使用Angular创建Metro Tile类型的网格,以实现这一目标,我希望每个瓷砖都具有不同的颜色。因此,我的行动计划是创建一个函数,该函数将在循环内随机选择一种颜色(使用)。这是我到目前为止所拥有的… 如您所见,我正在使用名为RandomColourClass的函数设置类名称,这是JS位 这一切工作正常,并且图块具有不同的颜色,但我一直收到以下错误 错误:达到10个$ d

  • 问题内容: 我是Angular的新手,并且遇到了与IE相关的问题。 这是我得到的IE错误。 在IE 8和IE 9之外的任何其他浏览器中都不会发生这种情况。 我有一只手表在看一个包含位置过滤器的内容过滤对象。 我对此的疑问是,为什么它不会在除IE之外的任何其他浏览器上发生,并且我应该怎么做才能消除它。提前致谢。 问题答案: 我有相同的问题,看起来却一样。Chrome \ FF工作正常,但IE失败。我

  • 问题内容: 达到10个$ digest()迭代。流产! 有很多支持文本,例如“在最近5个迭代中触发了Watchers:”等,但是其中很多文本是来自各种功能的Javascript代码。有诊断此问题的经验法则吗?是可以始终缓解的问题,还是应用程序足够复杂,因此应将其视为警告? 问题答案: 正如Ven所说,您或者在每个循环中返回不同(不相同)的对象,或者您将数据更改了太多次。 确定您的应用程序的哪个部分

  • 问题内容: 我需要使用foursquare API搜索场所。当然,它是跨域的。 它在Firefox中没有任何问题,但是在Internet Explorer中(我已经测试过7、8、9)。 我的JavaScript代码如下所示: 在Firefox中,它可以完美显示接收到的数据。在Internet Explorer中,它登录控制台: 我该怎么办? 问题答案: 我在Windows Mobile 7上对此进

  • 问题内容: 作为建议在这里,我已成功安装了微软的Visual C ++编译器为Python 2.7 编译一些用Cython代码,但是: 仍然产生: 错误:找不到vcvarsall.bat 如何使用Python 2.7编译Cython代码(例如在Windows 7 x64上)? 注意:我已经仔细阅读了以下错误问题:找不到vcvarsall.bat,但是主要答案(包括修改)都无法解决。 问题答案: 我

  • 问题内容: 使用在Windows 8上使用Python 2.7给我的错误: 问题: 如何解决错误?运行给出了同样的错误… 问题答案: 您可以改用ol’good 。 不是pip,而是它的一个好方面是也能够下载和安装二进制程序包,这使您无需准备VC ++。当然,这取决于二进制文件是为您的Python版本准备的。 更新: 是的,Pip现在可以安装二进制文件! 有一种新的二进制Python存档格式(whe