使用" @ select"渲染嵌套的Hashmaps数组。在.dust文件中

时间:2017-10-27 12:29:15

标签: javascript html node.js gruntjs dust.js

我有包含Hashmaps数组的JSON对象:

{   "someparentkey": {
        "arraykey": [
            {
                "uniquekey": "key1",
                "content": "param1"
            },
            {
                "uniquekey": "key2",
                "content": "param2"
            }
        ]
    }
}

根据"uniquekey"的每个值,我想渲染传递给导入的灰尘模板的值为"content"的单独灰尘模板。

这就是我的基本模板现在的样子:

{#someparentkey}
    {#arraykey}
        {@select key={uniquekey} }
            {@eq value="key1"}{>"path/to/dust1" param={content} /}{/eq}
            {@eq value="key2"}{>"path/to/dust2" param={content} /}{/eq}
            {@default}<!-- Invalid script tag {key} in configuration -->{/default}
        {/select}
    {/arraykey}
{/someparentkey}

我导入的模板(&#34; path / to / dust1.dust&#34;&#34; path / to / dust1.dust&#34;)如下:

<span>{param}</span>

但是在执行尘埃文件的&#34; grunt build&#34; 时,我收到的错误是:

  

SyntaxError:arraykey的预期结束标记但未找到。在第3行,第9列:第9列   块引用

     

警告:Dust.js无法编译模板&#34; path / to / my / base-dust&#34;。

问题:

  1. 我当前模板代码中的问题是什么?
  2. 有没有更好的方法来实现我的目标?

1 个答案:

答案 0 :(得分:0)

这是我最终使用的模板,它对我有用:

{#someparentkey.arraykey}
    {@select key=uniquekey }
        {@eq value="key1"}{>"path/to/dust1" param=content /}{/eq}
        {@eq value="key2"}{>"path/to/dust2" param=content /}{/eq}
        {@default}<!-- Invalid script tag {key} in configuration -->{/default}
    {/select}
{/someparentkey.arraykey}