Я пытаюсь запустить код во время обратного вызова ссылки на директиву ngModel, используя AngularJS в поле выбора, которое использует ngOptions.AngularJS ngModel Directive с полем выбора и ngOptions
module.directive("ngModel",function(){
console.log('ng-model called');
return {
restrict: 'A',
priority: -1, // give it lower priority than built-in ng-model
link: function(scope, element, attr) {
console.log('watching');
scope.$watch(attr.ngModel,function(value){
if (value){
console.log("changing");
}
});
}
}
});
Смотрите эту скрипку, который демонстрирует эту проблему: http://jsfiddle.net/d3r3zwLj/3/
Первое поле выбора заполняется с использованием нг-опций, в то время как второй имеет свои варианты явно выписанный в HTML. Если вы откроете консоль, вы увидите, что вы видите только «изменение» сообщения при изменении второго поля выбора. Изменение первого ничего не делает.
Вы также сразу заметите, что один раз вы видите только 'ng-model called' и 'watch', хотя есть два поля с ng-моделью на них.
Я ожидаю, что директива ngModel будет работать над обоими полями. Что такое ng-options, что мешает работе ngModel?
Спасибо!