簡體   English   中英

Angular:表單和復選框問題上的$ setPristine

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM