如何在dust.js帮助器中切换上下文

时间:2015-03-09 21:02:04

标签: javascript dust.js

我有一个以下列形式发送到尘埃的模型:

{
    "name": "Build Name",
    "date": "03/09/2015",
    "modules": [
        {
            "name": "Cyber Strength",
            "module_group": "Standard",
            "module_type": "Training Modules"
        },
        {
            "name": "Phil",
            "module_group": "Games",
            "module_type": "Training Modules"
        },
        ...
    ]
}

我希望能够以......的形式制作粉尘助手功能。

{@getModules module_group="Standard" module_type="Training Modules"}
    <li>{name}</li>
{/getModules}

我不能简单地遍历执行{#modules}{/modules}的模块,因为我只想显示符合我标准的模块(module_group和module_type)。

任何人都可以帮我提出一个帮助函数,可以切换到模块的正确上下文,其中{name}将打印模块名称而不是构建名称吗?

1 个答案:

答案 0 :(得分:1)

你实际上可以迭代modules,因为你可以过滤掉你不想要的那些。

要访问核心Dust逻辑帮助程序,您还希望包含dustjs-helpers模块。

然后,您可以使用{@eq}帮助程序仅处理符合条件的对象。

{#modules}
  {@eq key=module_group value="Standard"}
  {@eq key=module_type value="Training Modules"}
    {name} is the right type!
  {/eq}
  {/eq}
{/modules}

但是,我认为按照您的建议编写帮助可以使您的模板更清晰,更易于阅读!要获得帮助撰写帮助,请查看我上面发布的评论链接,并阅读Dust documentation on writing context helpers