Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果在Dust.js中有其他内容_Javascript_Dust.js - Fatal编程技术网

Javascript 如果在Dust.js中有其他内容

Javascript 如果在Dust.js中有其他内容,javascript,dust.js,Javascript,Dust.js,我的模板是 {#results} {#publisher}Publisher Label {/publisher} {#editor}Editor Label {/editor} {#author}Author Label {/author} {/results} 数据是 { results: { "publisher": "Pankaj", "editor": "Mike", "writer": "Henry"

我的模板是

{#results}
    {#publisher}Publisher Label {/publisher}
    {#editor}Editor Label {/editor}
    {#author}Author Label {/author}
{/results}
数据是

{
    results: {
        "publisher": "Pankaj",
        "editor": "Mike",
        "writer": "Henry"
    }
}
它输出“发布者标签编辑器标签”


我想要输出“Publisher Label Editor Label writer”。由于模板中未定义writer,因此它应该打印密钥本身。如何在模板中实现此逻辑?基本上,所有的数据都应该打印出来。

按照规定,你不能一蹴而就地解决这个问题。你有两个选择,我将详细说明这两个

选项1:更改数据格式 Dust只在数组上迭代,迭代逻辑实际上就是您想要的,因为您希望查看所有键,而不仅仅是模板中指定的键

更改数据以使其看起来更像:

{
  results: [
    { role: "publisher", name: "Pankaj" },
    { role: "editor", name: "Mike" },
    { role: "writer", name: "Henry" }
  ]
}
将允许您这样编写模板(并要求):

如果其他真值测试的计算结果都不是真的,则特殊的
{@none}
帮助程序将输出

选项2:自定义灰尘助手,
{@iterate}
您可以编写以扩展Dust的模板逻辑。将助手写入上下文将是提取所需数据的简单方法。在这种情况下,在将其包括在内后,按如下方式使用:


尽管您必须添加另一个助手,但如果您无法重新格式化数据,这可能是一个更好的选择。

完美答案。正是我要找的。
{#results}
  {@select key=role}
    {@eq value="publisher"}Publisher Label{/eq}
    {@eq value="editor"}Editor Label{/eq}
    {@eq value="author"}Author Label{/eq}
    {@none}{role}{/none}
  {/select}
{/results}
{@iterate key=results}
  {@select key=$key}
    {@eq value="publisher"}Publisher Label{/eq}
    {@eq value="editor"}Editor Label{/eq}
    {@eq value="author"}Author Label{/eq}
    {@none}{$key}{/none}
  {/select}
{/iterate}