AngularJS выберите ng-options бесконечная ошибка дайджеста - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть тег выбора с вызовом функции в ng-options:

<select ng-model='selectedList'
        ng-options='list.id as list.label
                    for list in listService.computeLists(resume)'
>

это приводит к повторяющейся бесконечной ошибке дайджеста.

angular.js: 14525 Ошибка: [$ rootScope: infdig] 10 $ digest () достигнуты итерации. Aborting!

Есть ли способ вызвать эту функцию в ng-options без этой ошибки? Я пытался запоминать, но не мог заставить его работать.

1 Ответ

0 голосов
/ 10 апреля 2019

Эта ошибка возникает, когда модель приложения становится нестабильной, и каждый цикл $digest вызывает изменение состояния и последующий цикл $digest.AngularJS обнаруживает эту ситуацию и не позволяет бесконечному циклу заставить браузер перестать отвечать на запросы.

Одной из распространенных ошибок является привязка к функции, которая генерирует новый массив при каждом его вызове.Например:

<div ng-repeat="user in getUsers()">{{ user.name }}</div>
$scope.getUsers = function() {
  return [ { name: 'Hank' }, { name: 'Francisco' } ];
};

Решение состоит в том, чтобы вернуть тот же объект массива, если элементы не изменились.

var users = [ { name: 'Hank' }, { name: 'Francisco' } ];

$scope.getUsers = function() {
  return users;
};

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

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