我引用了https://github.com/angular/angular.js/issues/1412
我有一个ng-maxlength="10"
和ng-model="form.name"
的输入
用户可以在输入框中输入文本,一旦达到限制,就会显示错误,用户无法提交表单。
问题:如果他们点击一个按钮来填充表单的内部数据,它抛出一个错误。
的例子:
<button ng-click="form.name='12345678901'">Populate Invalid Data</button>
小提琴——http://jsfiddle.net/kCzjC/1/
在表单元素上使用$setViewValue (http://jsfiddle.net/kCzjC/5/):
)<button ng-click="myForm.formName.$setViewValue('12345678901'); myForm.formName.$render();">Populate Invalid Data</button>
AngularJS格式化器(管道中用来根据模型更新填充视图值的函数)用于大多数angular验证(例如maxlength),如果发现模型值无效,则不会更新视图值。从ngModelCtrl调用$setViewValue和$render函数将填充输入框。ngModelCtrl可以通过ngForm访问。其中,ngForm是表单的名称,inputName是表单中ng-model的名称。