2017-02-20 3 views
0

watch.logを起動して警告を1回だけ表示するようにwatchグループが呼び出されるたびに1回呼び出すようにしています。条件が真であれば毎回警告を出そうとしているので、皆さんが私を助けてくれることを本当に願っています!

$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'); 
    } 
}); 
+0

あなたが私にNG-変更を使用する方法の例を与えることができます代わりに '$ watch' – sh0ber

+0

の' NG-change'を使用することを検討してください? – user3711175

+0

https://docs.angularjs.org/api/ng/directive/ngChange – AlexD

答えて

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(); 
}); 
+0

通知ボタンが毎回表示されるたびに入力した後に、ハイアックスが機能しない – user3711175

+0

更新されたコードを見て、移動しましたifの外部への登録解除。まだ動作していない場合は、このコードの場所に投稿してください。すべてのタイプではなく、一度だけ呼び出す必要があります – AlexD

+0

Erm alexコードはうまくいきますが、メールアドレスに別のシンボルを追加しようとするとエラーがログアウトしますが、ボタンはまだ有効になっていますが、私のコードがうまく動作するウォッチャーの事を削除するなぜそれはああ起こっているのですか? – user3711175

関連する問題