来自 Jade 模板的车把条件检查属性
Posted
技术标签:
【中文标题】来自 Jade 模板的车把条件检查属性【英文标题】:Handlebars conditional checked property from Jade template 【发布时间】:2013-05-23 17:19:52 【问题描述】:我希望提供给客户的车把模板看起来像
<input type='checkbox' checked=isChecked>
或
<input type='checkbox' #if isCheckedchecked/if>
如何编写一个可以编译成这个的 Jade 模板?从他们的文档中,如果分配的值是真实的但实际上不包含该值,则将包含选中的属性:
input(type="checkbox", checked="isChecked")
编译成
<input type='checkbox' checked>
我也试过了:
input(type="checkbox", checked=isChecked)
和
input(type="checkbox", #if isCheckedchecked/if)
只是编译失败,我理解
【问题讨论】:
【参考方案1】:直接在你的翡翠模板中试试吧。
<input type='checkbox' #if isCheckedchecked/if>
应该保持相同的格式。
【讨论】:
【参考方案2】:我建议创建一个更通用的帮助器,以便以后轻松重用
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
(映射到模板的对象的字段)的值
【讨论】:
你如何检查一个否定的,比如检查是否为假? @dvidsilva 我已经很久没有使用 Handlebars 了……这行得通吗?checkedIf !this.someField
?
不是真的,我最终不得不写checkedIf和checkedIfNot :O以上是关于来自 Jade 模板的车把条件检查属性的主要内容,如果未能解决你的问题,请参考以下文章