如何激活$ watch只在每种类型输入时调用alert和console.log

时间:2017-02-20 14:38:51

标签: javascript angularjs watch

每次调用监视组时,我只尝试调用一次来触发console.log并仅发出一次警报。因为如果情况属实,我每次只想提醒一次,我真的希望你们可以帮助我!

$scope.$watch('email.data', function(val){
  if(re.test(val)){    
    $scope.invalid = true;
    console.log('email true');
  }else{
    console.log('email false');
  }
});

$scope.$watch('phone.data', function(val){
  if(PHONE_REGEXP.test(val)){
    console.log('phone true');
    $scope.invalid = true;
  }else{
    $scope.invalid = true;
    console.log('phone false');
  }
});

1 个答案:

答案 0 :(得分:0)

$scope.$watch返回一个函数。如果你打电话给你,你会删除你的观察者

var emailDataWatcher = $scope.$watch('email.data', function(val){
  if(re.test(val)){    
    $scope.invalid = true;
    console.log('email true');
  }else{
    console.log('email false');
  }

  emailDataWatcher();
});

var phoneDataWatcher = $scope.$watch('phone.data', function(val){
  if(PHONE_REGEXP.test(val)){
    console.log('phone true');
    $scope.invalid = true;
  }else{
    $scope.invalid = true;
    console.log('phone false');
  }

  phoneDataWatcher();
});