我正在做ng-blur
并将input
的当前值发送到function
。我的问题是我想保存以前的输入值并将其传递给模糊函数,因为如果值相同则没有动作。
<input type="text" class="input__text" name="name" ng-model="name" ng-blur="bluryLines(name)">
$scope.bluryLines = function(oldValue, value) {
if (value !== '' | value !== oldValue) {
console.log('some action');
} else {
console.log('is empty');
}
};
答案 0 :(得分:1)
使用ng-change调用您的函数并使用ng-model-options =&#34; {updateOn:&#39; blur&#39; }&#34;
文档:https://docs.angularjs.org/api/ng/directive/ngModelOptions
<input type="text" class="input__text" name="name" ng-model="name" ng-change="bluryLines()" ng-model-options="{ updateOn: 'blur' }">
Plunker:https://plnkr.co/edit/BLFj5iRtF3xUxIQEk8UT?p=preview
答案 1 :(得分:0)
在$scope.bluryLines
函数末尾的变量中保留值的副本。您甚至不需要将任何参数传递给控制器函数。
var oldName;
$scope.bluryLines = function() {
if ($scope.name !== '' | $scope.name !== oldName) {
console.log('some action');
} else {
console.log('is empty');
}
// copy $scope.name
oldName = angular.copy($scope.name);
};
请参阅此Plunker。