2017-08-07 51 views
1

中的複選框將數值保存到數組當我在ng-repeat中選中複選框時,必須將值放入數組中。將值保存到AngularJS中的ng-repeat內的複選框中

<li ng-repeat="player in team.players"> 
    <div class="row"> 
    <div class="col-md-3 m-t-xs"> 
     <input type="checkbox" ng-model="vm.newEvent.players[$index].selected" ng-change="vm.selectPlayer($index, player)"> {{player.name}} 
    </div> 
    <div class="col-md-5 m-t-xs"> 
     <label for=""> 
     <input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="injured"> Injured 
     </label> 
     <label for=""> 
     <input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="sick"> Sick 
     </label> 
     <label for=""> 
     <input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="other"> Other 
     </label> 
    </div> 
    </div> 
</li> 

這是它現在在瀏覽器中的樣子。

enter image description here

的問題是,當我點擊任何球員的名字在FC巴塞羅那手風琴也選擇從拜仁慕尼黑手風琴相同索引的球員,我想要的是讓所有玩家相互獨立的形式。 我是否在綁定中缺少某些東西?

+0

我認爲這些複選框具有相同的名稱 – anu

+0

是啊,這是我想要解決的問題。 –

+1

使用某些ID或計數器創建名稱。 – anu

回答

1

使用清單模型,用於名單AngularJS指令複選框

In Angular one複選框<input type="checkbox" ng-model="...">與一個模型鏈接。但實際上,我們通常希望一個模型存儲來自多個複選框的選中值的數組。清單模型解決了該任務,無需在控制器中添加額外的代碼。您應該<input type="checkbox">標籤的屬性上:

  • 設置checklist-model代替NG-模型
  • 設置checklist-value的 - 什麼應該被選爲陣列項目

Documentation

0

這一點,因爲這個功能:vm.disSelectPlayer($index, player)

我認爲你必須爲了讓每個玩家不同的ID或索引添加這裏<li ng-repeat="player in team.players">指數。

試試這個: <li ng-repeat="(key ,player) in team.players">

,並使用該密鑰在調用該函數: vm.disSelectPlayer($index, player , key)

我希望它是有用的:)

+0

它與你一起工作嗎? – ZAhmed

0

這是因爲在線#4你寫了

ng-model="vm.newEvent.players[$index].selected". 

您已經使用父母反對即球員,而不是這個,你可以使用

ng-model="vm.player.selected". 

OR

ng-model="vm.team.players[$index].selected". 
相關問題