2014-03-25 53 views
1

我有種引用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/

回答

4

使用$ setViewValue表單元素上(http://jsfiddle.net/kCzjC/5/):

<button ng-click="myForm.formName.$setViewValue('12345678901'); myForm.formName.$render();">Populate Invalid Data</button> 

AngularJS格式化器(在管道中用於填充視圖的功能基於模型更新的值)對於大多數角度驗證(例如maxlength),如果發現模型值爲inv,則不更新視圖值alid。調用ngModelCtrl中的$ setViewValue和$ render函數將填充輸入框。 ngModelCtrl可通過ngForm.inputName訪問,其中ngForm是表單的名稱,inputName是表單中給ng模型的名稱。

+0

謝謝!這讓我指出了正確的方向。從控制器它是'$ scope.myForm.formName。$ setViewValue('12345678901');'以防其他人正在尋找一種方式從控制器調用窗體。 –

相關問題