将数据正确传递到另一个灰尘模板

Pass data correctly to another dust template

有一个 base.tl,其中包含如下两列:

<li class="column region">
  {@partial placeholder = "region" id="column-region" }
    {> "templates/partials/column" /}
  {/partial}
</li>

<li class="column industry">
  {@partial placeholder = "industry" id="column-industry" }
    {> "templates/partials/column" /}
  {/partial}
</li>

这是包含输入框的 column.tl。我希望其中一个是只读的,另一个不是。所以我像这样添加 readOnly 。 但我不知道如何解析布尔值 readOnly 从 base.tl 到这里。

<div class="column-content">
  <input placeholder="{placeholder}"
    class="add-preference-input"
    type="text" {?readOnly}readonly{/readOnly} />
</div>

好像我像占位符一样解析了参数,但它不能告诉它它是一个布尔值。如何将布尔值解析为部分模板并让它被识别?是否可以,或者我必须使用 javescript 来帮助它。

你说得对,Dust 不能直接将布尔值作为参数传递——它们只会被字符串化。

但是,{?exists} 标签检查的是存在性,而不是真实性。所以你有几个选择。

不传递 true 和 false,而是传递 "true" 和 ""(空字符串)

{@partial placeholder="region" readonly="" id="column-region"}

使用来自 dustjs-helpers 的 {@eq} 助手

{@eq key="readonly" value="true" type="boolean"}readonly{/eq}

在您的上下文中放置等于 truefalse

的变量
{@partial placeholder="region" readonly=FalseContextVar}