使用AngularJS设置html5输入maxlength属性

时间:2016-06-07 14:09:17

标签: angularjs html5

我想通过AngularJS设置输入的最大长度,当用户达到最大字符时,不应该在输入中添加新字符。

我输入的ng-model是selecteddata.Type.Value

最大字符值存储在selecteddata.Type.MaxLength

我添加了html5 maxlength属性,如下所示:

<input type="text" ng-model="selecteddata.Type.Value" maxlength="{{selecteddata.Type.MaxLength}}" />

这可以按照我的意愿运行,当用户达到最大字符时,无法添加新字符,但它不会设置selecteddata.Type.Value ..

为什么这不起作用?是否有AngularJS这样做的方式?我已经阅读了关于ngMaxlength的内容,但它没有按照我的意愿行事。我是否需要编写自定义指令才能使其工作? 有什么建议?

3 个答案:

答案 0 :(得分:0)

<input type="text" data-ng-model="selecteddata.Type.Value" data-ng-maxlength="selecteddata.Type.MaxLength" />

附加所有角度指令。

答案 1 :(得分:0)

您可以使用AngularJS默认属性ng-maxlength

    <input type="text" ng-model="model" id="input" name="input" ng-maxlength="maxlength" />

试试这个PLNKR: https://plnkr.co/edit/6ztQAixx9KkHBO4a3qD3?p=preview

答案 2 :(得分:0)

我的版本的小提琴:https://jsfiddle.net/U3pVM/25383/

  <div ng-app>
      <div ng-controller="TodoCtrl">
       <input type="text" ng-model="selecteddata.Type.Value" maxlength="{{selecteddata.Type.MaxLength}}" />

      selecteddata.Type.Value-{{selecteddata.Type.Value}}
      </div>
    </div>

function TodoCtrl($scope) {
  $scope.selecteddata={
    'Type':{
      'MaxLength':5
    }
  }
}