ember.js - ember-bootstrap - 渲染“无线电”输入
问题描述
使用 Ember 插件 ember-bootstrap 我可以制作一组像这样的单选按钮:
{{form.element controlType="radio" label="Fruit Type" property="radio" options=radioOptions optionLabelPath="label"}}
使用如下所示的控制器:
export default Controller.extend({
init() {
this._super(...arguments);
this.radioOptions = [
{
label: 'Citrus',
value: 'C',
inline: true
},
{
label: 'Non-Citrus',
value: 'N',
inline: true
}
];
}
});
相关文档在这里https://www.ember-bootstrap.com/#/components/forms。
但是我不能做的是为每个单选按钮提供一个自定义值,以便我最终得到如下呈现的 HTML:
<label>Citrus</label>
<input type="radio" value="C">
<label>Non-Citrus</label>
<input type="radio" value="N">
我查看了https://www.ember-bootstrap.com/#/components/forms上的“自定义控件”,但我看不出这如何适用于这种情况。
编辑:为了更清楚我为什么要这样做,我想显示可读标签(例如“Citrus”)但有不可读取的值(“C”)可用于发送回服务器(因为服务器认为用“C”或“N”表示。
我可以发回“Citrus”并将其映射到服务器上并不是必须的,但我只是认为这会非常简单。
在https://www.ember-bootstrap.com/#/components/forms上查看以“您也可以只自定义现有控件组件:”开头的 doco 部分,您似乎应该能够做到我想要的东西,但显示的示例没有解决 value 属性的使用,我不知道如何 .
解决方案
您不需要像这样呈现 HTML。如果您想访问选中的收音机,只需它是属性名称点值,如radio.value
.
在这里如何在提交操作中获取它:
actions: {
onSubmit() {
alert(this.radio.value)
}
}
推荐阅读
- redis - Traefik - 无法为不同域公开具有相同端口的 redis docker 容器
- react-native - nativebase 自动完成无法找到
- c++ - 设置常量缓冲区 Directx
- django - /edit/ __init__() 的 TypeError 获得了参数“数据”的多个值
- linux - 如果还没有换行符,则在匹配模式的行之前创建换行符
- sql - 我可以在没有定义外部表的情况下使用 postgres_fdw 吗?
- android - 查询列中的房间错误返回
- php - ArrayAccess 是否扩展 Traversable?
- javascript - Jquery 对话框打不开?
- node.js - 使用 webpack 将 typescript 编译为 js 并保持目录结构