oninput在Angular中不起作用。另类?

Chr*_*ill 4 angularjs angularjs-ng-change

我试图创建一个读取输入值并触发一系列true / false的函数,但是下面的代码不断返回“未定义passStrength”。从我发现,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);
    }
};
Run Code Online (Sandbox Code Playgroud)

在我的标记中:

<input id="password" oninput="passStrength()" />
Run Code Online (Sandbox Code Playgroud)

tps*_*lva 5

要在输入更改时触发事件,请使用ng-change。另外,您必须定义ng-model。

<input ng-model="password" ng-change="passStrength(password)" />
Run Code Online (Sandbox Code Playgroud)

编辑:创建了一个展示它的pl

  • `onchange` 和 `oninput` 不一样,因为 `onchange` 只在字段失去焦点时触发。虽然这个答案可能解决了 OP 的问题,但它实际上并没有回答他的问题。 (2认同)