2015-05-03 18 views
5

Z silnikiem szablonowym dot.js, w jaki sposób przechodzisz przez obiekt? W przykładowych danych poniżej, w jaki sposób przechodzisz przez obiekt "msg"?dot.js pętla przez obiekt

{ 
    "msg": { 
     "1": { 
      "a": "a1" 
     }, 
     "2": { 
      "b": "b2" 
     } 
    } 
} 

Odpowiedz

6

Z przykład na the website, wygląda na to, jeśli jesteś w stanie to zrobić:

{{ for(var prop in it) { }} 
<div>{{=prop}}</div> <!-- Prints "msg" --> 
    {{ for(var msgProp in it[prop]) { }} 
    <div>{{=msgProp}}</div> <!-- Prints "1" and "2" --> 
     {{ for(var numProp in it[prop][msgProp]) { }} 
     <!-- Prints "a: a1" and "b: b1" --> 
     <div>{{=prop}}: {{=it[prop][msgProp][numProp]}}</div> 
     {{ } }} 
    {{ } }} 
{{ } }} 

jednak może chcesz simplifiy ten obiekt trochę z JavaScript pierwszy, przed przekazaniem go do szablon, aby ułatwić iterację.

+1

Zauważyłem, że jest nieco bardziej czytelny (choć wydaje mi się, że jest mniej interoperacyjny ze starszymi przeglądarkami) zamiast używać Object.keys. Zmniejsza wszystkie dziwne nawiasy klamrowe. Tak więc coś w stylu '{{~ Object.keys (it): firstGroup}} ... {{~}}' –

0

Najlepiej zrobić to najpierw przekształcić msg w tablicę. Łatwiej jest iterować w ten sposób. Następnie wystarczy użyć jQuery's $.each().