2017-10-27 2 views
0

Ich habe JSON-Objekt mit dem Array von HashMaps als:Render verschachtelte Array von HashMaps mit der Verwendung von „@Select“ in .dust Datei

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

Basierend auf jeden Wert von "uniquekey", ich will das machen separate Staubvorlage mit dem Wert "content" wurde an die importierte Staubvorlage übergeben.

Dies ist, was meine Basisvorlage jetzt wie folgt aussieht:

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

Und meine importierten Vorlagen ("path/to/dust1.dust" und "path/to/dust1.dust") sind wie:

<span>{param}</span> 

Doch während die "build Grunzen" tun der Staub Datei, erhalte ich den Fehler:

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".

Fragen:

  1. Was ist das Problem in meinem aktuellen Template-Code?
  2. Und gibt es einen besseren Weg zu erreichen, was ich will?

Antwort

0

Dies ist die Vorlage, die ich schließlich am Ende mit und es funktionierte für mich:

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