@claus_bor

Как починить ангуляровский watch?

У меня есть вотчер, который следит за изменениями объекта, и если объект был изменен, то он его обновляет. Почему то при смене роута я получаю ошибку, после чего приложение виснет и остается только закрыть страницу:
Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!


Вот сам вотчер:
$scope.$watch("project", function (oldvalue, newvalue) {
            if (oldvalue && newvalue) {
                var change = oldvalue.trucks.length != newvalue.trucks.length

                if (!change) {
                    for (var i = 0; i < oldvalue.trucks.length; i++) {
                        var change = change|| oldvalue.trucks[i].name != newvalue.trucks[i].name
                    }
                }

                if (change) {
                    // //console.log('change in trucks')
                    $scope.setProjectSorted();
                }

                compareTrucks(oldvalue, newvalue);
                $rootScope.needToSave = true;
            }
        }, true)


Я думаю что проблема в том, что $scope.project обновляется в вотчере и это провацирует последущие обновления что приводит к этой ошибке. Что можно сделать в данном случае?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 18:38
1500 руб./в час
19 апр. 2024, в 18:36
1500 руб./за проект
19 апр. 2024, в 18:36
30000 руб./за проект