我想向AngularJS添加一些小功能。 這是關於表單驗證。 讓我們假設我有一個表單。 我填充它並將填充的對象發送到服務器。 服務器用這個對象做了一些動作,並決定'標題'字段不正確。 服務器返回有關無效標題的消息(我們還假設此驗證可以僅在服務器上進行,以避免客戶端驗證解決方法)。重置表格中的所有錯誤
我以編程方式添加了新的無效錯誤。 ($ scope.myForm.title。$ setValidity('bad',false)); 我有.ng-invalid-bad類,用紅色邊框標記我的標題字段。 好的。 我更改標題並將此對象發送到服務器。 但是在這個時候,我的'描述'值與標題衝突,服務器答案'描述錯誤'。 因此,現在我必須重置所有字段的所有有效性,並向'description'字段添加新的'bad'有效性。但是我沒有找到重置整個表單的功能。 我試過$ setPristine和其他,但字段仍然有'ng-invalid-bad'類。只有當我爲每個字段調用$ setValidity('bad',true)時,我才能刪除它。
我在本地拷貝中爲這個功能做了一些angular.js的更新。
問題: 1.我錯過了關於此功能的文檔中的內容嗎? 2.如果沒有 - 我可以開始準備我的PR角度與此功能?
example: http://plnkr.co/edit/aev16Y3cAxTljhctUDMI
- 嘗試,以填補第一輸入,離開第二個空。點擊GO!您應該看到標有紅色邊框的第二個字段。
- 清理第一個輸入,然後用一些文本填充第二個輸入。點擊GO!您應該看到標有紅色邊框的所有輸入。
$ setPristine()應該做的伎倆。你有沒有提供任何代碼或者複製你的問題的plunkr? – mengstrom 2015-01-31 22:18:47
將plunkr鏈接添加到問題。 – user3187702 2015-01-31 23:32:18
似乎將有效性設置爲true是唯一的方法,因爲$ setPristine只重置窗體上的髒,原始和提交狀態以及所有控件的髒和原始狀態。 – mengstrom 2015-02-01 00:40:29