从单选按钮选择中分配值的最佳方法
Best way to assign value from radio button selection
我创建了这个小jsbin,为我的用例提供了框架:http://emberjs.jsbin.com/kufijixicu/1/edit?html,js,output
我试图以各种方式实现的是能够根据单选按钮列表中的选择分配color
值。我相信有一个简单的解决方案。
解决方案还必须提供一种已在列表中选择潜在现有值的方法。因此,如果已选择color
,则应在列表中选中所选的。
当前解决方案
我当前的解决方案可能无关紧要,但我会将其发布在这里以供参考。
如前所述,我已经尝试了各种解决方案。我目前在我的应用程序中拥有的那个工作如描述的那样,它有错误且混乱,这就是我寻找更好的解决方案的原因:
ColorController
有一个操作,该操作附加到上面的 jsbin 中的<li>
:
selectColor: function(color) {
this.send('setColor', color);
this.forEach(function(item) {
item.set('isChecked', item.get('model') == color);
});
}
IndexController
具有setColor
操作:
setColor: function(color) {
this.set('color', color);
}
初始选择是通过ColorController
上的这个观察器设置的:
colorsChanged: function() {
if (this.filterBy('isChecked', true).get('length') == 0) {
var selectedColorId = this.parentController.get('model.color_id')+'',
selectedColor = this.filterBy('id', selectedColorId);
if (selectedColor.get('length') == 0) return;
selectedColor.objectAt(0).set('isChecked', true);
}
}.observes('this.[]')
这似乎太混乱了,但它也不能 100% 工作。例如,单击单选按钮本身实际上会再次取消选中单选按钮。
在 Ember 中,单选按钮和复选框等内容最好包含在组件中。不幸的是,一些边缘情况阻止了Ember将单选按钮组件作为核心的一部分。
我要做的第一件事是看看其他人是否已经实现了这一点。您是否正在使用 Ember CLI?如果没有,你应该是。浏览余烬插件我找到两个单选按钮组件。
我会给余烬单选按钮一个镜头。
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 从数组中删除元素的最佳方法是:javascript/jquery
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 列出没有 mysql 的元素的最佳方法是什么
- 在jquery库中重新定义方法的最佳方法
- Javascript,用vars创建对象的最佳方法
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用jasmine测试JavaScriptUI的最佳方法
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 在 JavaScript 中获取范围的随机数的最佳方法
- 在对象类上实现 jquery 作用域的最佳方法
- 将同步函数包装到承诺中的最佳方法是什么?
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法