2014-10-18 10 views
7

Szukałem na kątowe docs tutaj: https://docs.angularjs.org/guide/forms#custom-validation

Próbuję utworzyć mój własny walidator pole wprowadzania za pomocą dyrektywy niestandardową. Utworzyłem dyrektywę, która wydaje się identyczna do tej z linku powyżej, tylko dostosowane z własnej funkcji walidacji (6 cyfr):

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; 
      }; 
     } 
    }; 
}); 

I kiedy go uruchomić, dostaję ten błąd:

Error: ctrl.$validators is undefined 

Czego mi tu brakuje?

+0

Czy używasz Angular 1.3? – zeroflagL

+0

1.2.26, jest to obecnie najnowsza stabilna wersja. – morgoth84

+1

Następnie ['$ validators'] (https://code.angularjs.org/1.2.25/docs/api/ng/type/ngModel.NgModelController) jeszcze nie istnieje. – Blackhole

Odpowiedz

14

$validators istnieje tylko od wersji 1.3. Wbrew twoim komentarzom najnowsza stabilna wersja to 1.3.0.

+0

Dlaczego Google go jeszcze nie obsługuje? oO https://developers.google.com/speed/libraries/devguide#angularjs – morgoth84

+2

[Google go hostuje] (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular. js). – Blackhole

+1

@Johannes 'Dzisiaj, po ośmiu miesiącach pracy, ponad dwóch tysiącach commitów, dziewiętnastu beta i sześciu kandydatach do wydania, w końcu wypuściliśmy superumiejętny podryw AngularJS 1.3.0- 14 października – zeroflagL