我对角度很新。我试图在点击时将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>
答案 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;
};