存储范围值,以便进行比较

时间:2016-05-27 11:36:48

标签: javascript angularjs

我正在做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');
   }
};

2 个答案:

答案 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