11

我希望提供给客户的车把模板看起来像

<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}})

那只是无法编译,我理解

4

2 回答 2

18

好吧,直接在你的玉模板中试试。

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

应该保持相同的格式。

捕获

于 2013-05-29T00:19:38.870 回答
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(映射到模板的对象的字段)的值

于 2014-07-16T22:59:06.070 回答