2014-10-29 46 views
3

我有大約100個問題,每個有一臺收音機和一些複選框形式,所以我需要用戶能夠保存表單以後加載它。我還需要檢查用戶在此會話中更改了哪些用戶。

這個問題解決了這個問題:How can I denote which input fields have changed in AngularJS

第二個答案(存儲模型的舊的和當前值,並比較兩者)做的。但是,如果我想用$原始解決方案去解決問題,取消勾選ng-checked框不會改變它的$ pristine值。只有在取消選中後再次選中複選框,$ pristine值纔會變爲false。

我知道我不是suposed使用NG-模型NG-檢查,但我從服務器得到的答案在1或0作爲模型不檢查複選框此值的值。

ng-model="question.answer" //will not check the box 
ng-check="question.answer" //does check the box 

將值從服務器中的值設爲1。取消選中,並檢查框它更改爲「真」

<input ng-model="question.answer" ng-checked="question.answer" 
type="checkbox" name="{{'answer' + question.id}}"/> 

繼承人plnkr:http://plnkr.co/edit/3xcI0Yq9WPZ1IxJJjKGt?p=preview

回答

4

你需要做的是設置10被分別視爲true和false值。您可以使用ng-true-value and ng-false-value進行設置。你不必處理1/0轉換爲真/假,也可以擺脫ng-checked並有效使用ng-model本身。

<input ng-model="question.answer" 
      ng-true-value="1" 
      ng-false-value="0" type="checkbox" name="{{'answer' + question.id}}" /> 

Plnkr

+0

也做到了,謝謝。擺脫ng檢查和$原始正常工作 – 2014-10-29 00:50:27

+0

@LuísdaMota不客氣.. :) – PSL 2014-10-29 01:01:36