Я знаю, что это вызывает проблему, как если бы я изменил window.location.href/reload
на $location.path()
, все работает нормально. Теперь я не вижу ошибок производительности при запуске кода (юзабилити) Шучу, это ломает приложение в IE, но работает в Chrome при использовании window
.
Что я делаю, так это заставляю некоторые обновления отражаться на сайте, когда пользователь входит/выходит из системы, и для этого мне нужно обновить страницу, как только я изменю их маршрут. Используя $location.path
и $state.go
, измените мой URL-адрес, но не перезагружайте/не обновляйте страницу, чтобы отражать обновления сайта.
Есть ли способ для AngularJS изначально перенаправить и перезагрузить маршрут/страницу без предупреждения/ошибки этого цикла? Или есть способ по-прежнему использовать window.location.href/reload
, а теперь заставить AngularJS сходить с ума?
Ошибка
Ошибка: [$rootScope:infdig] достигнуто 10 итераций $digest(). Прерывание!
Watchers fired in the last 5 iterations: [["fn: function $locationWatch() {\n var oldUrl = $browser.url();\n var currentReplace = $location.$$replace;\n\n if (!changeCounter || oldUrl != $location.absUrl()) {\n changeCounter++;\n
$rootScope.$evalAsync(function() {\n if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n defaultPrevented) {\n
$location.$$parse(oldUrl);\n } else {\n
$browser.url($location.absUrl(), currentReplace);\n
afterLocationChange(oldUrl);\n }\n });\n }\n
$location.$$replace = false;\n\n return changeCounter;\n }; newVal: 8; oldVal: 7","fn: function(context) {\n try {\n
for(var i = 0, ii = length, part; i
And then there is a paragraph-long error below those starting with:
[$rootScope:infdig] Достигнуто 10 итераций $digest(). Прерывание! Наблюдатели сработали за последние 5 итераций....