在 .dust 文件中使用“@select”渲染嵌套的 Hashmap 数组

Render nested array of Hashmaps with the usage of "@select" in .dust file

我有 JSON 个包含 Hashmap 数组的对象:

{   "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}

我导入的模板(“path/to/dust1.dust”和“path/to/dust1.dust”)如下:

<span>{param}</span>

但是在执行 dust 文件的 "grunt build" 时,我收到如下错误:

SyntaxError: Expected end tag for arraykey but it was not found. At line : 3, column : 9 Blockquote

Warning: Dust.js failed to compile template "path/to/my/base-dust".

问题:

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

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

{#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}