目前,我为每个表单创建一个Handlebars模板,并在其中使用value={{user}}
。因此,我可以轻松填写任何表格以更新任何实体。但select
,radio
和ckeckbox
是不同的。是否有任何干净的方式来填充这些元素。他们没有value
属性。
答案 0 :(得分:0)
<select id='select'>
<option selected value=user name=test>test</option>
</select>
如您所见,您可以通过将“selected”属性设置为特定选项来控制select
的值。
或者您可以尝试嵌入一些像
这样的javascript代码document.getElementById('select').value={{user}}
您需要确保拥有正确的值属性集
的选项答案 1 :(得分:0)
您可以通过使用each
帮助程序来实现此目的。
<select>
{{#each options}}
<option>{{this}}</option>
{{/each}}
</select>
其中options是普通数组(["apple", "banana", "pear"]
)。
您可以在homepage上找到更多信息。还有一个示例,其中您的数组包含对象,如果您需要指定value
属性,这可能很有用。
答案 2 :(得分:0)
在stackoverflow上,我找到了这个回复: How to set selected select option in Handlebars template
有一个非常好的解决方案(来自@BlaM编辑的@janjarfalk):
使用此部分(使用Jquery)...
window.Handlebars.registerHelper('select', function( value, options ){ var $el = $('<select />').html( options.fn(this) ); $el.find('[value="' + value + '"]').attr({'selected':'selected'}); return $el.html(); });
您可以使用{{#select status}} ...
在Handlebars模板中打包选择<select> {{#select status}} <option value="Completed">Completed</option> <option value="OverDue">OverDue</option> <option value="SentToPayer">SentToPayer</option> <option value="None">None</option> {{/select}} </select>