Dust.js是否提供了通过关键字“key”和“value”引用对象键/值的方法?

时间:2015-04-10 05:37:47

标签: dust.js

我想将Dust.js用作客户端模板引擎。 我有一个像这样的数据json:

var data = {
    "Foo": [{
        "somekey": "somevalue",
        "otherkey": "othervalue"
    }, {
        "somekey": "somevalue",
        "otherkey": "othervalue"
    }],
    "Bar": [{
        "somekey": "somevalue",
        "otherkey": "othervalue"
    }, {
        "somekey": "somevalue",
        "otherkey": "othervalue"
    }]
}

我事先并不知道最上面的对象键是什么 - 我不知道FooBar键,它们可以是任何值。

所以,我需要通过keyvalue等关键字迭代这个json。像这个伪代码中的东西:

{% for(key, value) in data %}
   {key}: {value}
{% /for %}

我知道Dust.js有{#section/}来循环一个对象。但同样,你必须提供一个关键名称:

{#extraData}
  {!
    Inside this section, Dust looks for
    values within the extraData object
  !}
  Inside the section, the value of name is: {name}{~n}
{/extraData}

我事先并不知道extraData名字。

那么,Dust.js是否提供了一种通过keyvalue关键字引用对象键/值的方法?

1 个答案:

答案 0 :(得分:2)

Dust不提供对象的内置迭代。

但是,您可以添加{@iterate}帮助程序来执行此类迭代。

您可以在https://www.npmjs.com/package/dustmotes-iterate

获取

使用示例:

      Data: { obj: {a:"A", b:"B", c:"C" } }

      {@iterate key=obj}
        {$key}:{$value} {$type}
      {/iterate}

      Output: a:A string b:B string c:C string