2015-05-03 17 views
5

Mit dot.js Template-Engine, wie schwirren Sie durch ein Objekt? In den folgenden Beispieldaten durchlaufen Sie das "msg" -Objekt?dot.js Schleife durch Objekt

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

Antwort

6

Aus dem Beispiel auf the website, es sieht aus, als ob Sie in der Lage sein sollten, zu tun:

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

auch immer Sie das Objekt ein wenig mit Javascript, bevor es vorbei, simplifiy kann wollen die Vorlage, um die Iteration zu erleichtern.

+1

Ich fand es etwas lesbarer (obwohl ich weniger interoperabel mit älteren Browsern denke), stattdessen Object.keys zu verwenden. Schneidet alle verrückten Klammern aus. So etwas wie '{{~ Object.keys (it): firstGroup}} ... {{~}}' –

0

Am besten konvertieren Sie zuerst msg in ein Array. Es ist viel einfacher, auf diese Weise zu iterieren. Verwenden Sie danach einfach jQuerys $.each().