2014-04-02 11 views
5

Próbuję użyć dyrektywy ng-maxLength, aby podać zmienną max-length dla moich danych wejściowych.ng-maxlength nie działa dla zmiennej

function ValidatorCtrl($scope, $timeout) { 
    $scope.name = "Star"; 
    $scope.$metadata={}; 
    $scope.$metadata.isRequired = true; 
    $scope.$metadata.maxLength=5; 
} 


    <input type="text" ng-model="name" ng-maxlength="$metadata.maxLength" 
ng-required="$metadata.isRequired" name="name" /> 

Ale wydaje się, że nie działa zgodnie z oczekiwaniami. Po zastosowaniu model wiązania dla tej samej zmiennej nie działa. Here is my plunker

Jeśli usuniemy ng-maxLength ng-required będzie działać zgodnie z oczekiwaniami, inaczej ng-required również nie działa.

+4

Myślę, że to błąd https://github.com/angular/angular.js/issues/1405 jeśli umieścisz go bezpośrednio 5 działa, wydaje się, że ng-maxlength = "{{$ metadata.maxLength}}" do pracy – Whisher

+1

'ng-maxlength =" {{$ metadata.maxLength}} "' wydaje się działać –

+0

Tak, wygląda na błąd. –

Odpowiedz

1

ng-maxlength nie przyjmuje wartości zasięgu.
Tradycyjnie ng-maxlength jest używana jako taka ng-maxlength = "3". Możesz dodać nawiasy klamrowe do wartości zasięgu lub utworzyć dyrektywę, która wiąże wartość zakresu wewnątrz ng-maxlength.

Powiązane problemy