Подтвердить что ты не робот

Добавление слушателя на модель в угловом

В настоящее время у меня есть модель, которая является значением окна поиска. Операция поиска выполняется отлично, но я также хочу, чтобы еще одна функция выполнялась при изменении текста поиска. Поэтому я хочу добавить переменную модели listener или watch. Как мне это сделать?

4b9b3361

Ответ 1

У вас есть 2 варианта для покрытия вашего прецедента:

Используйте директиву ng-change

Вы можете написать свой ввод так:

Search: <input ng-model="search.model" ng-change="changeHandler()">

где changeHandler - это функция, определенная в области видимости.

Использовать часы в области

написав в контроллере:

$scope.$watch('search.model', function(newVal, oldVal){
    console.log("Search was changed to:"+newVal);
    $scope.search.watch = newVal;
  });

Вот рабочий стол, иллюстрирующий оба: http://plnkr.co/edit/Jgb2slcBFzLNKK0JFNyo?p=preview

Разница между двумя подходами заключается в том, что ng-change будет срабатывать только в результате пользовательских итераций с вводом, тогда как $watch будет срабатывать для любой мутации модели, вызванной с помощью управления вводом или любого другого изменения модели. Таким образом, вы можете точно выбирать, какие события вы хотите отреагировать.