来自Jade模板的Handlebars条件检查属性

时间:2013-05-28 16:32:38

标签: javascript html node.js handlebars.js pug

我喜欢把我的把手模板送给客户看起来像

<input type='checkbox' checked={{isChecked}}>

<input type='checkbox' {{#if isChecked}}checked{{/if}}>

如何编写将编译为此的Jade模板?从他们的文档中,如果指定的值是真实的,但是实际上不包括值,则将包括已检查的属性:

input(type="checkbox", checked="{{isChecked}}")

编译到

<input type='checkbox' checked>

我也尝试过:

input(type="checkbox", checked={{isChecked}})

input(type="checkbox", {{#if isChecked}}checked{{/if}})

无法编译,我理解

2 个答案:

答案 0 :(得分:17)

直接在你的玉石模板中试试。

<input type='checkbox' {{#if isChecked}}checked{{/if}}>

应保持相同的格式。

capture

答案 1 :(得分:9)

我建议你创建一个更通用的帮助器,以后可以轻松重复使用

Handlebars.registerHelper("checkedIf", function (condition) {
    return (condition) ? "checked" : "";
});

然后,您可以在任何模板中使用它:

<script id="some-template" type="text/x-handlebars-template">
   ...
   <input type="checkbox" {{checkedIf this.someField}} />
   ...
</script>

这将呈现为

<input type="checkbox" checked />

 or...

<input type="checkbox" />

取决于someField(映射到模板的对象的字段)的值