Получение [$ rootScope: inprog] $ digest уже выполняется [SANITIZED URL] в приложении Meteor с использованием шаблонов meteor- angular - PullRequest
0 голосов
/ 12 апреля 2020

Получение [ $ rootScope: inprog ] $ Дайджест уже выполняется [SANITIZED URL] в приложении Meteor с использованием meteor- angular -templates

Я получаю эту ошибку, некоторую места в моем метеорном приложении. Я попытался обернуть вызовы $ apply в моем приложении в течение $ timeout, но это не сработало. Я подозреваю, что это как-то связано с вызовами Tracker.autorun () в моих контроллерах angular. Следит ли Tracker.autorun () за тем же дайджестом и циклом, что и Angular? Многократная функция вызывает причину, по которой страницы представления воспроизводятся снова и снова, что вызывает ошибку $ digest.

Tracker.autorun(() => {
    Multiple function calls here
})

снимок экрана logDNA

1 Ответ

0 голосов
/ 12 апреля 2020

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

Ошибка: $ rootScope: inprog Действие уже выполняется

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

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

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

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

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

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

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

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

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

...