2015-11-25 7 views
0

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

На HTML -

<input id="unique" type="text" data-ng-change="KeywordChange(filterKey)" ng-model="$parent.filterKey"> 

в контроллере

$scope.KeywordChange = function (filterKey) { 
    //some logic goes here 
} 

Ключевое слово Функция изменения хорошо работает, когда ввод текста для ввода текста изменения. но я хочу, эта функция НЕ будет вызвана, когда я изменить значение входного текстового поля как этот

$('#unique').val(''); 
$('#unique').change(); 

и Я, чтобы изменить значение текстового поля программно - так есть ли возможность знать функцию keywordChange вызывается по фактической изменение текста в текстовом поле или вызванный программным вызовом на $('#unique').change();

+0

http://jsfiddle.net/n0kfdbh3/ проверить эту скрипту это может помочь – guradio

ответ

1

Если вы хотите изменить значение текстового поля (которое привязано к некоторым данным) программно в AngularJs, то все, что вам нужно сделать, это обновить соответствующую модель.

Использование jQuery для обновления пользовательского интерфейса, безусловно, не рекомендуется.

Вам нужно просто обновить свойство «filterKey» в JavaScript из вашего кода AngularJs.

+0

Да, конечно, именно по этой причине мы используем AngularJs, но в моем случае как-то - мне нужно использовать jQuery для обновления значения текстового поля. – Devendra

+0

Где вы пытаетесь его обновить? Это изнутри одного контроллера? или где-то еще? если вы обновляете значение текстового поля вне контроллера, то вы не используете AngularJs правильно. Контроллер будет отвечать за обновления интерфейса через привязку модели. Если вы после обновления Ui из-за пределов контроллера, вам нужно либо перефакторировать свой код, либо использовать связь с контроллером, используя $ broadcast или $ emit. – Don

+0

Я думаю, что вы правы - мне нужно реструктурировать свой код и ограничить его контроллером, когда дело доходит до обновления пользовательского интерфейса. благодаря – Devendra

1

Почему бы просто не использовать ng-keyup, так как все, что вам нужно, это физические штрихи?