2014-09-29 54 views
1

新增功能,讓我可以盡情發揮。如何將動態單選按鈕綁定到Ember中的控制器屬性上

我一直在努力與單選按鈕。我只想動態創建一些單選按鈕,然後將選中的單選按鈕綁定到控制器上的屬性。

我試圖回答這樣一個問題:https://stackoverflow.com/a/18991426/62653

然而,當你動態地創建單選按鈕不起作用。

這是公認的答案片段:

<label> 
    {{view Ember.RadioButton name="selectionTest" selectionBinding="isSelected" value="true"}} 
    true 
</label> 
<label> 
    {{view Ember.RadioButton name="selectionTest" selectionBinding="isSelected" value="false"}} 
    false 
</label> 

但是當你動態創建的單選按鈕的觀點就是這樣,這是行不通的:

{{#each myModel.someCollection}} 
    <label> 
     {{view Ember.RadioButton name="selectionTest" selectionBinding="isSelected" value=id}} 
     {{id}} 
    </label> 
{{/each}} 

如果你使用一個循環要創建如上所述的單選按鈕,屬性isSelected不會更新。

任何想法或其他解決方案綁定單選按鈕?

回答

5

範圍正在#each塊內更改爲myModel.someCollection中的每個對象。因此,您正在綁定myModel.someCollection.collection.isSelected值。您想要使用不改變上下文的#each塊的替代形式,從而允許您綁定到isSelected。您還需要顯式綁定的價值,你作爲一個模板的代碼並沒有這樣做,因爲該值已經在硬編碼試試這個:

{{#each item in myModel.someCollection}} 
    <label> 
     {{view Ember.RadioButton name="selectionTest" selectionBinding="isSelected" valueBinding=item.id}} 
     {{item.id}} 
    </label> 
{{/each}} 

​​

Here are the docs

好奇的是,這裏是他正在使用的定製radioButton的原始示例代碼:http://jsfiddle.net/chopper/CM6fK/35/

值得注意的是,爲了使這些綁定正常工作,數組中的對象需要要成爲Ember對象,並且只需要使用Ember方法(getset)添加,刪除和修改它們,這將確保所有綁定得到正確更新。

+1

@rustytome,你是一個拯救生命的人,非常感謝。男人,這很難找到文件。真的很欣賞精心設計的答案! – andy 2014-09-30 05:17:19

相關問題