2016-04-08 5 views
1

Im пытается создать функцию, которая считывает значение ввода и запускает серию true/false, однако приведенный ниже код продолжает возвращать «passStrength не определен». Из-за того, что я могу найти, oninput не поддерживается Angular. Как добиться этого в Угловом?oninput не работает в угловом. Альтернатива?

В моем контроллере:

$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

Ответ в тегах: нг-изменения. https://docs.angularjs.org/api/ng/directive/ngChange. –

ответ

3

Чтобы запустить событие, когда входные изменения, использование нг-изменения. Кроме того, вы должны определить ng-модель.

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

Edit: Создано plunker демонстрирует его

+0

Спасибо, но тогда как я могу обратиться к модели в контроллере? заменяя вход с $ scope.password, не делает трюк. Im получает неопределенную ошибку от функции для ввода. –

+0

Взгляните на этот [Plunker] (http://plnkr.co/edit/ybvmeYDwvNAv4W5QeNum?p=preview). – tpsilva

+0

Спасибо! Я сделал несколько иной путь, но по сути то же самое! –