7

Я смотрел на Angular документы здесь: https://docs.angularjs.org/guide/forms#custom-validation

Я пытаюсь создать свой собственный валидатор поле ввода с помощью пользовательской директивы. Я создал директиву, которая, кажется, идентична той, из приведенной выше ссылке, только настроить с помощью своей собственной функции проверки (6-значный пароль):

app.directive('password', function() { 
    return { 
     require: 'ngModel', 
     link: function(scope, element, attrs, ctrl) { 
      ctrl.$validators.password = function (modelValue, viewValue) { 
       if (/^[0-9]{6}$/.test(viewValue)) { 
        return true; 
       } 

       return false; 
      }; 
     } 
    }; 
}); 

И когда я бегу, я получаю эту ошибку:

Error: ctrl.$validators is undefined 

Что мне здесь не хватает?

+0

Вы используете Angular 1.3? – zeroflagL

+0

1.2.26, это последняя версия стабильной версии. – morgoth84

+1

Тогда ['$ validators'] (https://code.angularjs.org/1.2.25/docs/api/ng/type/ngModel.NgModelController) еще не существует. – Blackhole

ответ

14

$validators только существует с версии 1.3. В отличие от вашего комментария, последняя стабильная версия - 1.3.0.

+0

Почему Google не принимает его? oO https://developers.google.com/speed/libraries/devguide#angularjs – morgoth84

+2

[Google размещает его] (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular. JS). – Blackhole

+1

@Johannes 'Сегодня, после восьми месяцев работы, более двух тысяч транзакций, девятнадцати бета-версий и шести кандидатов на выпуск, мы наконец выпустили AngularJS 1.3.0 superluminal-nudge'- 14 октября – zeroflagL