如何将动态单选按钮绑定到Ember中的控制器属性
How to bind dynamic radio buttons to controller property in 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
不会更新。
有没有绑定单选按钮的想法或其他解决方案?
#each
块内的作用域正在更改为myModel.someCollection中的每个对象。因此,您正在绑定myModel.some 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方法(get
和set
)来添加、删除和修改它们,这将确保所有绑定都得到正确更新。
相关文章:
- 从全局函数调用Ember控制器上的方法
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 如何将Ember.js控制器连接到视图
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- Ember访问公共路由/控制器mxiin中的控制器属性
- 如果没有Ember中的控制器,我如何更改查询参数
- Ember.js-自动使动作成为目标控制器
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- 更改路由时将 Ember 控制器属性设置为 false
- ember - 控制器操作仅由输入字段调用,而不由按钮调用
- 在 ember 控制器中创建自定义函数
- Ember控制器计算的属性(Object类型)更新不起作用
- 嵌套路由中的Ember控制器
- 在Ember控制器中使用依赖注入字段
- 链接Ember控制器到视图/元素
- 如何在Ember控制器中测试. observers()方法
- 如何在目录中设置ember控制器
- 在测试期间,Ember UI不会触发Ember控制器动作
- Ember控制器依赖解析不能在直接链接上工作
- 渲染到现有模板时的Ember控制器