2014-04-02 24 views
5

我正在尝试使用ng-maxLength指令为我的输入提供变量最大长度。ng-maxlength不适用于变量

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" /> 

但它似乎没有按预期工作。应用时,同一变量的模型绑定不起作用。 Here is my plunker

如果我删除ng-maxLength ng-required将按预期工作,否则ng-required也不起作用。

+4

我认为这是一个错误https://github.com/angular/angular.js/issues/1405如果你直接把5它工作似乎ng-maxlength =“{{$ metadata.maxLength}}”工作 – Whisher

+1

'ng-maxlength =“{{$ metadata.maxLength}}”'似乎在工作 –

+0

是的,好像是一个错误。 –

回答

1

ng-maxlength不采用范围值。
传统上,ng-maxlength被用作ng-maxlength =“3”。 您可以在范围值附近添加大括号,也可以在ng-maxlength内创建一个绑定范围值的指令。