2016-04-08 29 views
1

入力の値を読み取り、一連の真偽をトリガーする関数を作成しようとしていますが、以下のコードは "passStrength is not defined"を返し続けます。 私が見つけたことから、oninputはAngularではサポートされていません。どのように角度でこれを達成することができますか?私のコントローラ内のoninputがAngularで動作していません。代わりに?

$scope.passStrength = function(input) { 
    if (input.value.toLowerCase().indexOf(/[a-z]/) > -1) { 
     $scope.lwrChar = true; 
     console.log('lower ' + $scope.lwrChar); 
    } else if (input.value.toUpperCase().indexOf(/[A-Z]/) > -1) { 
     $scope.uprChar = true; 
     console.log('upper ' + $scope.uprChar); 
    } else if (input.value.indexOf() == !isNaN(n)) { 
     $scope.nbrChar = true; 
     console.log('number ' + $scope.nbrChar); 
    } else if (input.value.length >= 8) { 
     $scope.countChar = true; 
     console.log('count ' + $scope.countChar); 
    } 
}; 

と私のマークアップ:

<input id="password" oninput="passStrength()" /> 
+1

それを証明plunkerを作成しました。 https://docs.angularjs.org/api/ng/directive/ngChange –

答えて

3

入力が変化し、利用NG-変更イベントを発射します。また、モデルを定義する必要があります。

<input ng-model="password" ng-change="passStrength(password)" /> 

編集:NG-変更: は、答えはあなたのタグである

+0

ありがとうございます。しかしコントローラのモデルをどのように参照しますか?入力を$ scope.passwordに置き換えると、そのトリックはありません。私は入力の関数から未定義のエラーを取得しています。 –

+0

この[Plunker](http://plnkr.co/edit/ybvmeYDwvNAv4W5QeNum?p=preview)を見てください。 – tpsilva

+0

ありがとう!私はわずかに異なる道を取ったが、本質的に同じだった! –

関連する問題