result变为
undefined-这就是
ng-min/maxlength指令的工作方式。我认为您必须编写自己的指令。这是一条指令,它将在15个字符后阻止输入:
<textarea my-maxlength="15" ng-model="result"></textarea>app.directive('myMaxlength', function() { return { require: 'ngModel', link: function (scope, element, attrs, ngModelCtrl) { var maxlength = Number(attrs.myMaxlength); function fromUser(text) { if (text.length > maxlength) { var transformedInput = text.substring(0, maxlength); ngModelCtrl.$setViewValue(transformedInput); ngModelCtrl.$render(); return transformedInput; }return text; } ngModelCtrl.$parsers.push(fromUser); } }; });
[fiddle](http://jsfiddle.net/bZGcg/)
更新: 允许超过15个字符,但是当计数超过15个时禁用提交按钮:
link: function (scope, element, attrs, ngModelCtrl) { var maxlength = Number(attrs.myMaxlength); function fromUser(text) { ngModelCtrl.$setValidity('unique', text.length <= maxlength); return text; } ngModelCtrl.$parsers.push(fromUser);}
[fiddle](http://jsfiddle.net/bZGcg/1/)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)