如何在 Dust 模板中运行或调节

2024-01-08

我在用"dustjs-helpers": "1.6.0", with "dustjs-linkedin": "^2.6.0" .

在我的模板中,我需要检查 OR 条件,例如

if( cherry === true || berry === true)
  path/to/template1/
else 
  path/to/template2/

我如何使用灰尘助手来完成此任务?


因为您正在测试两个不同的变量,所以您需要两个不同的真值测试。

您可以将此逻辑放入您的模板中,或者放入一个小助手中。我将向您展示两种方法。

我们假设您的上下文如下所示:

{
  "cherry": false,
  "berry": true
}

模板法

此方法需要dustjs-helpers >= 1.6.2

你必须包括两个{@eq}检查。因为您使用的是最新版本的 Dust,所以您可以访问{@any} and {@none}帮手。

{@select key=cherry}
  {@eq value="true" type="boolean"/}
  {@eq key=berry value="true" type="boolean"/}
  {@any}path/to/template1{/any}
  {@none}path/to/template2{/none}
{/select}

您必须手动覆盖key to berry在第二个真相测试中。

不太好的模板方法

适用于所有版本的dustjs-helpers。

{@eq key=cherry value="true" type="boolean"}
  path/to/template1
  {:else}
  {@eq key=berry value="true" type="boolean"}
  path/to/template1
  {:else}
    path/to/template2
  {/eq}
{/eq}

缺点:这无法扩展,很丑,而且会重复数据。

辅助方法

根本不需要dustjs-helpers。

{
  "cherry": false,
  "berry": true,
  "isFruit": function(chunk, context) {
    return context.get("cherry") || context.get("berry");
  }
}

{?isFruit}
  path/to/template1
{:else}
  path/to/template2
{/isFruit}

优点:您可以添加更多条件而无需更改模板。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Dust 模板中运行或调节 的相关文章

  • Android Listview - 仅当用户停止滚动时将图像加载到项目中

    当用户快速滚动浏览项目时 开始请求图像来填充这些项目似乎是多余的 毕竟 用户滚动速度太快 它们永远不会被及时下载 显示 当用户实际暂停滚动时 是否有任何类型的方法 事件首先触发 尝试使用此代码来检测滚动停止 setOnScrollListe
  • 减少 WAV 声音文件大小,而不损失质量

    我的应用程序需要播放声音文件 我可以使用的唯一跨平台文件格式是 WAVE 我正在使用QSound http doc trolltech com 4 5 qsound html detailsQt 框架 这些声音的文件大小非常大 我想知道是否
  • InteractivePopGestureRecognizer 导致应用程序冻结

    在我的应用程序中 我有不同的控制器 当我将controller1推到导航控制器并滑动到后面时 一切正常 但是 如果我推导航控制器1 然后推入控制器1推控制器2并尝试向后滑动 我会得到一个冻结的应用程序 如果通过后退按钮返回一切正常 我怎样才
  • 如何在 Android Studio 运行时获取构建变体?

    我想在运行时获取构建变体 这是否可能不需要任何额外的配置或代码 查看生成的BuildConfig class public final class BuildConfig public static final boolean DEBUG
  • sqlite3_fts5使用标点符号时出错

    我有一个问题字符串变量 其中包含 我的车在哪里 一词 当我尝试对此运行选择时 它崩溃了 String sql Select from tblHALv2001 WHERE tblHALv2001 MATCH question fts5 附近的
  • plotly.js 中的分类轴顺序

    我有一个plotly js 条形图 我试图使 calcategories 轴的顺序正确 每个类别都有一个条形 但有时它们是绿色的 有时是黄色的 条形图应按从最高到最低的顺序排列 但情节似乎是根据不同的填充对它们进行排序 数据 var dat
  • 不可选择的下拉列表

    有没有什么方法可以让下拉列表中没有任何项目可供选择 所以基本上 我只是想用它作为显示 隐藏列表的一种方式 我不想要任何悬停突出显示 也不希望能够更改所选项目 您能否建议这是否可能 或者如果有人有任何其他想法来实现类似的目标 您能否给我指出一
  • 如何更改用户控件的访问修饰符

    我在 xaml 中创建了一个用户控件 将其命名为 View 在 View xaml cs 中 我将类 View 的访问修饰符更改为内部 internal partial class View ViewBase 更改访问修饰符后 编译器会显示
  • 如何在 linux (RedHat 6) 上检查 java 版本

    I am trying to check what java version I have installed in my linux machine I have tried which java 我得到 usr bin java 但是当
  • XAML - 设置样式后文本未显示在我的文本框中

    因此 我在正在开发的应用程序中设置了文本框的样式 突然间我看不到绑定到文本框的任何文本 我觉得我缺少某种 ContentPresenter 无论如何 这是样式
  • 如何对 kubernetes 中运行的 Inception 服务的部署进行故障排除

    我正在关注使用 TensorFlow Serving 和 Kubernetes 服务 Inception 模型 https tensorflow github io serving serving inception html当我尝试从本地

随机推荐