$ watch не работает с массивами

0

Я смотрю и массиву, если он изменяется, тогда я хочу вызвать функцию

$scope.$watch(
            $scope.aQuestions,
            function fncheckQuesCount(newValue, oldValue) {
                debugger;
                if (newValue === oldValue) {
                    return;
                } 
                else fnGetQues();
            });

здесь $ scope.aQuestions - массив

но когда я запускаю это, он показывает newValue и oldValue как неопределенные.

  • 0
    попробуйте заменить }); с }, true); (Или используйте $watchGroup )
  • 0
    нет, это то же самое
Теги:

1 ответ

4

Должно быть

$scope.$watch("aQuestions",

Или

$scope.$watch(function (){
        return $scope.aQuestions;
},

Это потому, что угловой нужен способ многократно проверять, что такое значение.

В вашей версии вы просто передаете значение массива (undefined). Когда значение изменяется угловым, оно не знает, потому что оно не имеет ссылки на массив.

  • 0
    Кроме того, рассмотрите возможность использования $watchCollection

Ещё вопросы

Сообщество Overcoder
Наверх
Меню