2017-01-05 3 views
1

Здесь у меня есть одно поле, которое отключено. Он содержит расчет поля X. Всякий раз, когда изменяется поле x, вычисление отключенного поля будет изменено, а когда поле отключено, я хочу рассчитать Y. Поэтому я применил ng-change к отключенному полю. Но он не работает. Будет ли ng-change работать в отключенном поле, если нет, то есть альтернатива.Как применить ng-change для отключенного поля?

Заранее спасибо.

+0

Нет, он не будет работать. Сделайте это только для чтения, но не отключите его. –

ответ

0

Директива ngChange не работает на входы disable/readonly, поскольку она оценивается только тогда, когда изменение входного значения вызывает привязку нового значения к модели. Итак, поскольку вы меняете значение программно и не набираете ничего для этой модели, оно не вызывает ngChange. Вы можете использовать $ scope. $ Watch.

Update

Html

Предположим, вы хотите вызвать функцию total1 если number1 изменилось. Например:

<input type="text" ng-model="number1" ng-readonly> 

Контроллер

$scope.$watch('number1', function (newVal, oldVal) { 
    if (newVal !== oldVal) { 
     // Call total1 function 
     total1(); 
    } 
}); 
+0

Не могли бы вы дать мне небольшой пример для $ scope. $ Watch ' –

+1

Просто посмотрите модель X. $ scope. $ watch ('X', function (val) {Y = val}); – digit

+0

Я только что обновил свой ответ. Вам нужно иметь модель для сравнения старого значения и нового значения. Поместите ng-model = "something" в текст ввода. – digit

Смежные вопросы