«$ digest уже выполняется» при изменении URL-адреса вручную - PullRequest
0 голосов
/ 31 января 2020

"$ digest уже выполняется" при изменении URL-адреса вручную

У меня есть гибридное приложение AngularJs / Angular. Если я нахожусь на странице, скажем localhost / home , и я вручную редактирую URL для localhost / otherPage и нажимаю ввод, браузер переходит на другую страницу, но я получаю эта ошибка:

enter image description here

Ошибка не возникает, если:

  • Я перехожу к та же страница с использованием ссылок в приложении
  • Я открываю новую вкладку, чтобы перейти непосредственно к localhost / otherPage

На трассировке стека не отображается ни один мой код, поэтому я не уверен, как отладить это. Кроме того, я не знаю, какая разница для маршрутизатора, «редактируете» ли вы URL-адрес для перехода из дома в otherPage, в отличие от прямого разрешения URL-адреса otherPage в новой вкладке.

Спасибо за любая помощь!

1 Ответ

0 голосов
/ 31 января 2020

Из документов:

Диагностика этой ошибки

Когда вы получаете эту ошибку, диагностировать причину проблемы может быть довольно сложно. Лучший способ действий - исследовать трассировку стека от ошибки. Вам нужно найти места, где были вызваны $apply или $digest, и найти контекст, в котором это произошло.

Должны быть два вызова:

  • Первый вызов является хорошим $apply / $digest и обычно вызывается каким-либо событием вблизи вершины стека вызовов.

  • Второй вызов является плохим $apply / $digest и это нужно исследовать.

После того, как вы определили этот вызов, вы поднимаетесь в стек, чтобы увидеть, в чем проблема.

  • Если в коде вашего приложения был сделан второй вызов, вам следует посмотреть, почему этот код был вызван из $apply / $digest. Это может быть простой недосмотр или, возможно, он соответствует сценарию sync / asyn c, описанному ранее.

  • Если второй вызов был сделан внутри директивы AngularJS, тогда вполне вероятно, что он соответствует второму сценарию запуска события c, описанному ранее. В этом случае вам, возможно, придется поискать дерево, которое вызвало событие в первую очередь.

Для получения дополнительной информации см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...