В настоящее время у меня есть модель, которая является значением окна поиска. Операция поиска выполняется отлично, но я также хочу, чтобы еще одна функция выполнялась при изменении текста поиска. Поэтому я хочу добавить переменную модели listener
или watch
. Как мне это сделать?
Добавление слушателя на модель в угловом
Ответ 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
будет срабатывать для любой мутации модели, вызванной с помощью управления вводом или любого другого изменения модели. Таким образом, вы можете точно выбирать, какие события вы хотите отреагировать.