如何在 ng-model 更改但未明确更改时调用 ng-change
How to call ng-change when the ng-model is changed but not explictly
嗯,问题的标题可能不太清楚。所以在这里我解释一下:
我有一个输入字段 I1,其 ng-model 绑定到 object。
然后我有 几个输入字段,如果更改了它们的值,它们的值会加在一起并反映在 I1 的 ng-model 中。
现在,当通过在输入框中键入内容明确更改 I1 时,它的 ng-change 会被触发。但是,如果 I1 的值因 几个输入字段 的变化而发生变化,则不会触发 I1 的 ng-change。
简而言之,由于几个输入字段的变化,I1中显示的值发生了变化,但未触发其ng-change。
如何触发 ng-change,即使 ng-model 已软更新
我希望,读者在这里明白了,因为我知道阅读起来有点复杂
从下面的例子中得到这个想法:-
function MyController($scope) {
$scope.modelVar = 1;
$scope.$watch('modelVar', function() {
alert('hey, modelVar has changed!');
// here you can call onChange event.
});
}
您可以在您的模型上使用手表并获得您想要的结果 -
HTML
<input type="text" ng-model="l1" ng-change="doSomething()" />
控制器
$scope.$watch(function() { return $scope.l1;},
function(newVal, oldVal) {
if (newVal !== oldVal) {
$scope.doSomething();
}
});
或者,您可以查看此线程 - How to trigger ng-click [AngularJS] programmatically
但推荐第一种方法。
嗯,问题的标题可能不太清楚。所以在这里我解释一下:
我有一个输入字段 I1,其 ng-model 绑定到 object。
然后我有 几个输入字段,如果更改了它们的值,它们的值会加在一起并反映在 I1 的 ng-model 中。
现在,当通过在输入框中键入内容明确更改 I1 时,它的 ng-change 会被触发。但是,如果 I1 的值因 几个输入字段 的变化而发生变化,则不会触发 I1 的 ng-change。
简而言之,由于几个输入字段的变化,I1中显示的值发生了变化,但未触发其ng-change。
如何触发 ng-change,即使 ng-model 已软更新 我希望,读者在这里明白了,因为我知道阅读起来有点复杂
从下面的例子中得到这个想法:-
function MyController($scope) {
$scope.modelVar = 1;
$scope.$watch('modelVar', function() {
alert('hey, modelVar has changed!'); // here you can call onChange event.
});
}
您可以在您的模型上使用手表并获得您想要的结果 -
HTML
<input type="text" ng-model="l1" ng-change="doSomething()" />
控制器
$scope.$watch(function() { return $scope.l1;},
function(newVal, oldVal) {
if (newVal !== oldVal) {
$scope.doSomething();
}
});
或者,您可以查看此线程 - How to trigger ng-click [AngularJS] programmatically
但推荐第一种方法。