处理表格的把手模板

时间:2013-12-18 07:38:34

标签: javascript handlebars.js

目前,我为每个表单创建一个Handlebars模板,并在其中使用value={{user}}。因此,我可以轻松填写​​任何表格以更新任何实体。但selectradiockeckbox是不同的。是否有任何干净的方式来填充这些元素。他们没有value属性。

3 个答案:

答案 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>