[英]Angular: $setPristine on Form and Checkbox Issue
我有一張表格,不允許您在第一個條目上選中復選框,這很奇怪。 幾乎就像沒有注冊點擊。
但是,如果您提交表單,並在提交第一個表單后嘗試檢查相同的復選框,則可以選中該復選框。 為什么是這樣?
這是我的復選框:
<label ng-repeat="sector in sectors" for="{{sector}}">
<input type="checkbox" id="{{sector}}" value="{{sector}}" ng-model="newService.sectors[sector]">{{sector}}
</label>
我還試圖找出如何在此表單上實現$setPristine
,以便在提交時為表單提供.ng-pristine
類。
我是Angular的新手,正在慢慢嘗試了解這一切的工作原理。
我在這里設置了小提琴: http : //jsfiddle.net/nh63w6e0/2/
任何幫助表示贊賞。 提前致謝!
問題
使用您的JSFiddle示例,如果您在單擊復選框的同時查看控制台,則會看到錯誤:
無法設置未定義的屬性“運行狀況”
這是因為未創建$ scope.newService,並且您在嘗試選中復選框時試圖執行等效於$scope.newService['health'] = true
的操作。 因此,如您所見,$ scope.newService是未定義的。
解決方案
您應該添加對resetCreateForm
的調用以初始化$scope.newService
屬性。
JSFiddle (查看最后一行,並附帶注釋)
編輯:
解決了使用$ setPristine的需要,您可以將此JSFiddle檢出。
您所要做的就是在表單上添加name
屬性,並通過其名稱將其稱為$ scope屬性。 然后,在form屬性上調用$setPristine()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.