如何更改角度的maxlength值

时间:2015-07-17 03:13:28

标签: angularjs maxlength

我对角度很新。我试图在点击时将maxlength的值从300更改为140。按钮使用ng-repeat加载,第一个是唯一一个应该将值更改为140的按钮,其余的应该返回到300.

这是我在控制器中的内容:

//character counter
$scope.counter = function() {
    var myEl = angular.element(document.querySelector('.form-control'));
    myEl.attr('maxlength', '150');
};

我的HTML是这样的:

 <textarea data-ng-model="view.post.content" ng-trim="false" maxlength="340" class="form-control" style="height: 100px;"></textarea>

2 个答案:

答案 0 :(得分:7)

只需使用ng-maxlength并将其绑定到范围内的属性,这将提供验证安全性。

实施例: -

 <textarea data-ng-model="view.post.content" ng-trim="false" 
            ng-maxlength="maxValue" class="form-control" 
            style="height: 100px;"></textarea>

如果你想真正限制,那么只需使用插值maxlength={{maxValue}}。即

 <textarea data-ng-model="view.post.content" ng-trim="false" 
            maxlength="{{maxValue}}" class="form-control" 
            style="height: 100px;"></textarea>

所以最初$scope.maxValue = 340然后在计数器内设置属性的值为150。

<强> Doc

  

<强> ngMaxlength   (可选的)   数字:   如果值大于maxlength,则设置maxlength验证错误密钥。将属性设置为负数或非数字值,允许任意长度的视图值。

<强> Example

答案 1 :(得分:2)

使用角度指令ng-maxlength

<textarea data-ng-model="view.post.content" ng-trim="false" ng-maxlength="{{len}}" class="form-control" style="height: 100px;"></textarea>

在您的控制器中

//character counter
$scope.len = 300;
$scope.counter = function() {
  $scope.len = 150;
};