2016-04-14 57 views
6

嘿,我試圖顯示一個ng-repeat內部的單選按鈕列表,它似乎並沒有考慮到字段的初始值我在輸入上綁定到ng-model。使用ng-model與嵌套ng-repeat內部的單選按鈕不起作用

當我給一個簡單的ng-repeat數組時,這些按鈕會正確顯示初始值。但是,如果一個嵌套的NG-重複到圖片中,只有每個列表的最後一個項目,一個值

這裏初始化是我的筆:

https://codepen.io/alokraop/pen/JXLZBp

我不知道我要去哪裏錯了。我確保單選按鈕的name屬性對每個組都是唯一的。

欣賞幫助。

+0

感謝問這個問題:) –

回答

6

這裏的問題是,你不能插入一個角值到attr name。如果我們從我們的HTML中刪除名稱attr,我們會得到預期的結果。 見下文。

<div ng-app="sample"> 
    <div ng-controller="sampleController as sample"> 
    Single ng-repeat: 
    <div ng-repeat="queue in sample.queues">{{queue.name}} status: 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="hooked" /> hooked 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="unhooked" /> unhooked 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="partial" /> partial 
    </div> 
    <br /> 
    Nested ng-repeat: 
    <div ng-repeat="qm in sample.qms"> 
     {{qm.name}} queues: 
     <div ng-repeat="queue in qm.queues">{{queue.name}} status: 
     <input type="radio" ng-model="queue.condition" value="hooked" /> hooked 
     <input type="radio" ng-model="queue.condition" value="unhooked" /> unhooked 
     <input type="radio" ng-model="queue.condition" value="partial" /> partial 
     </div> 
    </div> 
    </div> 

</div> 

如果我們要動態地包括名稱,看看成角的名字指令如:Dynamic form name attribute <input type="text" name="{{ variable-name }}" /> in Angularjs

+0

嘿感謝,這固定它。但我不明白,這隻會將正確的值綁定到列表中的最後一項。再加上名稱屬性是什麼組合單選按鈕在一起嗎?當我選擇不具有name屬性的其他項目時,單選按鈕仍然知道取消選中之前選定的項目?這是不是有人推斷,他們三個在一個組中,因爲他們在順序? – alokraop

+0

在這種情況下,單選按鈕由ng-model指令綁定在一起。當用戶選擇一個新的廣播選項時,ng-model的值將更改爲與該廣播關聯的值屬性。發生這種情況時,ng模型會被共享該ng模型的其他單選按鈕重新讀取,並相應地更新它們的值。 – dYale

+0

哦,所以它現在發生在摘要循環中,因爲原生html事件不知道按鈕是組的一部分。謝謝:-) – alokraop