2017-03-07 33 views
0

我正在嘗試遍歷questions的數組。但我需要在每個問題上附上單選按鈕答案。 在這種情況下,我需要爲每個答案添加不同的ng-model。 我試過下面的代碼,但它沒有奏效。

這是使用ng-repeat$index的正確方法嗎?

<li class="fields" ng-repeat="question in questions"> 
    <p>question:{{question.title}}</p> 
    <div class="radio-buttons"> 
     <input type="radio" id="radio01" value="0" ng-model="answer[$index]" checked="checked"/> 
     <label for="radio01"><span></span>Yes</label> 
     <input type="radio" id="radio02" value="1" ng-model="answer[$index]"/> 
     <label for="radio02"><span></span>No</label> 
    </div> 
</li> 
+0

什麼不行?這看起來應該把所有答案(0/1)放在一個'answer'數組中。或者,也許你想'ng-model =「question.answer」'? – devqon

回答

2

你需要做這樣的modelname{{$index}}

<li class="fields" ng-repeat="question in questions"> 
     <p>question:{{question.title}}</p> 
     <div class="radio-buttons"> 
      <input type="radio" id="radio01" value="0" ng-model="answer{{$index}}" checked="checked"/> 
      <label for="radio01"><span></span>Yes</label> 
      <input type="radio" id="radio02" value="1" ng-model="answer{{$index}}"/> 
      <label for="radio02"><span></span>No</label> 
     </div> 
    </li> 
+0

不要忘記接受答案,如果它的工作:D @ahmdabos –

0

你也可以做到這一點通過方括號太多,如果取悅你美學更多:

<li class="fields" ng-repeat="(i, question) in questions"> 
    <p>question:{{question.title}}</p> 
    <div class="radio-buttons"> 
    <input type="radio" id="radio01" value="0" ng-model="answer[i]" checked="checked"/> 
    <label for="radio01"><span></span>Yes</label> 
    <input type="radio" id="radio02" value="1" ng-model="answer[i]"/> 
    <label for="radio02"><span></span>No</label> 
    </div> 
</li> 

另外要注意,以點模型表示時,模型更好。因此,例如:

<input type="radio" ng-model="answer[i]" /> 

會更好,如:

<input type="radio" ng-model="models.answer[i]" /> 

然後在您的控制器,這使得它易於通過對象「模型」列出所有的車型,而不是找出多少答案[我]有模特。