Jade预编译带有把手条件的输入属性

时间:2013-06-23 09:05:16

标签: handlebars.js pug mustache

简短版本:我希望jade能够生成类似{{#if readOnly}} readonly {{/ if}}属性的内容。 这可能吗?

我将我的Jade模板预编译到客户端手柄.hbs模板文件,以便像

这样的jade语法
input(type="text", name="dlg_{{fieldName}}",id="dlg_{{fieldName}}")

变为预编译

<input type="text" name="dlg_{{fieldName}}" id="dlg_{{fieldName}}" />

我希望包含一个客户端条件“readonly”属性,但这种解决方案不起作用

input(type="text",readonly="{{#if readOnly}}true{{else}}false{{/if}}",name="dlg_{{fieldName}}",id="dlg_{{fieldName}}")

我需要在预编译时生成的内容(没有jade条件)

<input type="text" {{#if readOnly}}readonly{{/if}} name="dlg_{{fieldName}}" id="dlg_{{fieldName}}" />

我知道我可以直接在jade模板中包含html代码,但这会使jade的兴趣和美丽无趣。

这样的解决方案也有效但不是最佳

|{{#if readOnly}}
input(type="text", name="dlg_{{fieldName}}",id="dlg_{{fieldName}}",readonly)
|{{else}}
input(type="text", name="dlg_{{fieldName}}",id="dlg_{{fieldName}}")
|{{/if}}

我还想过包含一个属性,比如“data-readony = {{#if readOnly}} true {{else}} false {{/ if}}”并在客户端设置readonly,但这需要更多的处理模板被渲染。

1 个答案:

答案 0 :(得分:1)

简单回答,我想你不能。 我宁愿推荐使用jade客户端:

if readOnly
  input(type="text", name="dlg_#{fieldName}", id="dlg_#{fieldName}", readonly)

只需将{client: true}传递给jade。