Я прочитал темы, связанные с этим, и нашел следующее, но все еще застрял.
Как $ посмотреть изменения на моделях, созданных с помощью ng-repeat?
Я пытаюсь реализовать плюс, минус счетчик с помощью следующего кода. Теперь всякий раз, когда ng-модель обновляется нажатием кнопки +/-, я хочу запустить ng-change. Я понимаю, что ng-change не запускается, когда ng-модель обновляется программно. Но у обновленного Stackoverflow есть решение для того, чтобы добавить $ watch на модель ng. Но это работает, если я создаю отдельный контроллер, не работающий внутри текущего контроллера. ng-change вызывает функции внутри текущего контроллера. Как это исправить ??
<div class="input-group" ng-repeat="product in oc.itemdetail.lines">
<input type="button" value="-" class="minus"
ng-click="product.line.total = product.line.total - product.stepCount">
<input type="number" ng-if="condition 1" ng-model="product.line.total" min="" max=""
step="product.stepCount" oninput="some condition"
ng-change="oc.function1()" />
<input type="number" ng-if="condition 2" ng-model="product.line.total" min="" max=""
step="product.stepCount" oninput="some condition"
ng-change="oc.function2()" />
<input type="button" value="+" class="plus"
ng-click="product.line.total = product.line.total + product.stepCount">
</div>
У меня есть два поля ввода выше, исходя из условия ng-if, либо одно будет отображаться одновременно. Каждое изменение ng вызывает разные функции внутри текущего контроллера. Если поставить отдельный контроллер, то при нажатии кнопки +/- срабатывает следующая функция. Но я хочу вызвать функцию внутри ng-change
$scope.$watch('Count', function (oldValue, newValue) {
if (newValue != oldValue)
console.log(oldValue, newValue);
});