2013-08-23 30 views
4

我想使用ng-repeat在每行的開始處有一個單選按鈕選擇器的表。該表是這樣的:ng-repeat和單選按鈕的角JS表

<table> 
    <tbody> 
     <tr ng-repeat="model in modelList"> 
       <td> 
       <input type="radio" ng-model="model.select"></input> 
       </td> 
      <td>{{ model.NDPName }}</td> 
      <td>{{ model.OEM }}</td> 
      <td>{{ model.version }}</td> 
      <td>{{ model.dateAdded }}</td> 
      <td>{{ model.validUntil }}</td> 
     </tr> 
    </tbody> 
</table> 

的NG-重複從modelList看起來像服用:

$scope.modelList = 
    [ 
     { 
      select: false, 
      NDPName: "NDP1", 
      OEM: "CHOAM Inc.", 
      version: "01", 
      dateAdded: "Jan 1, 2013", 
      validUntil: "Jan 1, 2014", 
     }, 
     { 
      select: false, 
      NDPName: "NDP2", 
      OEM: "Tyrell Corp.", 
      version: "01", 
      dateAdded: "Jan 1, 2014", 
      validUntil: "Jan 1, 2015", 
     }, 
     { 
      select: false, 
      NDPName: "NDP3", 
      OEM: "Stark Industries", 
      version: "01", 
      dateAdded: "Jan 1, 2015", 
      validUntil: "Jan 1, 2016", 
     }, 
     { 
      select: false, 
      NDPName: "NDP4", 
      OEM: "Monsters Inc.", 
      version: "01", 
      dateAdded: "Jan 1, 2016", 
      validUntil: "Jan 1, 2017", 
     }, 
     { 
      select: false, 
      NDPName: "NDP5", 
      OEM: "ACME Corp", 
      version: "01", 
      dateAdded: "Jan 1, 2017", 
      validUntil: "Jan 1, 2018", 
     } 
    ]; 

我遇到的問題是單選按鈕的行爲不一樣單選按鈕。它們各自處於一個單獨的範圍內,因此將允許選擇表中的多行。我怎樣才能解決這個問題?

+1

僅供參考,您的''語法無效。如果您使用的是XHTML文檔類型,則爲'',否則爲''。 –

回答

13

您需要設置一個name propertyfor單選按鈕,這樣他們將被組合在一起。

<input type="radio" name="groupName" ng-model="model.select" /> 

read about the name property here

+0

哇,這是一個簡單的修復。謝謝! – MitchVz

+2

最簡單的修復方法是最容易忽略的修復方法。很高興有幫助:) – Kabb5

1

您應該在輸入中指定名稱標籤。然後,所有的投入將屬於同一組,並會像預期的那樣:

<input type="radio" name="myGroup" ng-model="model" /> 
+0

'ng-model'應該包含一個點。見https://egghead.io/lessons/angularjs-the-dot – Kabb5