1

我一直在为单选按钮苦苦挣扎。我只想动态创建一些单选按钮,然后将选中的单选按钮绑定到控制器上的属性。

我尝试了这个问题的答案: 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则不会更新该属性。

绑定单选按钮的任何想法或其他解决方案?

4

1 回答 1

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}}

这是一个有效的 JSFiddle

这是文档

对于好奇,这里是他正在使用的自定义 radioButton 的原始示例代码:http: //jsfiddle.net/chopper/CM6fK/35/

值得注意的是,要使这些绑定正常工作,数组中的对象需要是 Ember 对象,并且只需要使用 Ember 方法(getset)来添加、删除和修改它们,这将确保所有绑定都正确更新。

于 2014-09-30T02:16:02.793 回答