Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度-无效模型值的解决方法_Javascript_Angularjs_Validation - Fatal编程技术网

Javascript 角度-无效模型值的解决方法

Javascript 角度-无效模型值的解决方法,javascript,angularjs,validation,Javascript,Angularjs,Validation,我有点参考价值 基本上,我有一个带有ng maxlength=“10”和ng model=“form.name” 用户可以在输入框中键入文本,一旦达到限制,就会显示错误,并且无法提交表单。这是完美的 问题:如果他们单击按钮用内部数据填充表单,则会抛出错误 例如: <button ng-click="form.name='12345678901'">Populate Invalid Data</button> 填充无效数据 Fiddle-在表单元素()上使用$setV

我有点参考价值

基本上,我有一个带有
ng maxlength=“10”
ng model=“form.name”

用户可以在输入框中键入文本,一旦达到限制,就会显示错误,并且无法提交表单。这是完美的

问题:如果他们单击按钮用内部数据填充表单,则会抛出错误

例如:

<button ng-click="form.name='12345678901'">Populate Invalid Data</button> 
填充无效数据

Fiddle-

在表单元素()上使用$setViewValue:

填充无效数据

如果发现模型值无效,大多数角度验证(例如maxlength)的AngularJS格式化程序(管道中用于根据模型更新填充视图值的函数)不会更新视图值。从ngModelCtrl调用$setViewValue和$render函数将填充输入框。ngModelCtrl可通过ngForm.inputName访问,其中ngForm是表单的名称,inputName是表单中ng模型的名称。

在表单元素()上使用$setViewValue:

填充无效数据

如果发现模型值无效,大多数角度验证(例如maxlength)的AngularJS格式化程序(管道中用于根据模型更新填充视图值的函数)不会更新视图值。从ngModelCtrl调用$setViewValue和$render函数将填充输入框。ngModelCtrl可通过ngForm.inputName访问,其中ngForm是表单的名称,inputName是表单中ng模型的名称。

谢谢!这让我找到了正确的方向。从控制器中,它是
$scope.myForm.formName.$setViewValue('12345678901')以防其他人正在寻找从控制器调用表单的方法。谢谢!这让我找到了正确的方向。从控制器中,它是
$scope.myForm.formName.$setViewValue('12345678901')以防其他人正在寻找从控制器调用表单的方法。
<button ng-click="myForm.formName.$setViewValue('12345678901'); myForm.formName.$render();">Populate Invalid Data</button>