我有一个功能,据报道无法在Internet Explorer中工作。不知道它有多久没有用,但我想它从一开始就是这样。我可以在IE11中验证它。
我的应用正在使用angularjs 1.3.17。
表单上有一个名为reset
的按钮。当他们点击它时,它会调用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,后者在后端执行大量操作。只要成功,它就会返回200
。
成功后,它会将一个空字符串写入localStorage,然后它会有效地进行页面刷新。您可以将window.location.href
替换为window.location.reload()
,因为它正在执行相同的操作。
但是,在重新加载时,它会给我$digest
周期错误。我想也许这是ng-init发生的事情,但我注释掉了整个init代码块,但仍然存在错误。不知道发生了什么。
知道为什么会这样吗?我尝试升级到angular 1.4.0,但由于这是我继承的遗留应用程序,升级后会抛出很多意大利面和很多错误,所以我希望能让它工作在1.3.17。
我知道有类似这样的帖子通常最终会在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;
只是一些变量初始化。
答案 0 :(得分:1)
尝试$ window.location.reload();
答案 1 :(得分:0)
我读了一些其他的答案和类似的问题,以角度重新加载页面的公认方式是$route.reload();
,也许这种方法并使用Angular期望事情发生的方式将有助于......
How to reload or re-render the entire page using AngularJS
Angular JS: IE Error: 10 $digest() iterations reached. Aborting