2013-11-26 13 views
5

Ho un modello doT.js simile a questo:doT.js fare qualcosa ogni terza iterazione

{{?it.books.length }} 
{{~it.books :value}} 
<li> 
    <article class='Teaser'> 
     <a href='{{=value.url}}' title='{{=value.title}}'> 
      <img src='{{=value.image}}' /> 
     </a> 
     <h3> 
      <a href='{{=value.url}}' title='{{=value.title}}'>{{=value.title}}</a> 
     </h3> 
    </article> 
</li> 
// this should only be rendered every 3rd time 
<br class='clear' /> 
{{~}} 
{{?}} 

Il BR-Tag, alla fine, dovrebbe essere reso solo ogni terza volta. Come faccio a fare questo?

risposta

9

Prova questo:

{{?it.books.length }} 
{{~it.books :value:index}} 
<li> 
    <article class='Teaser'> 
     <a href='{{=value.url}}' title='{{=value.title}}'> 
      <img src='{{=value.image}}' /> 
     </a> 
     <h3> 
      <a href='{{=value.url}}' 
       title='{{=value.title}}'>{{=value.title}}</a> 
     </h3> 
    </article> 
</li> 
{{? index % 3 == 2 }} 
<br class='clear' /> 
{{?}} 
{{~}} 
{{?}} 

Se si vuole evitare di aggiungere l'elemento alla fine della lista (che si verifica quando la lunghezza della collezione è divisibile per 3), sostituire

{{? index%3 == 2 }} 

con

{{? it.books.length-1 != index && index % 3 == 2 }} 
+0

funziona perfetto, grazie! ho dimenticato di mettere: indice in {{~ it.books: valore: indice}} –

0

un'occhiata un caso un po 'più complesso

{ 
 
    "result": [ 
 
      ["Administrators", 1, [{ 
 
        "id": 189, 
 
        "role_id": 1, 
 
        "user": { 
 
         "id": 8, 
 
         "username": "[email protected]", 
 
         "email": "[email protected]", 
 
         "firstName": "Agnaldo", 
 
         "lastName": "Carmo", 
 
         "created": { 
 
          "date": "2015-09-25 
 
          18: 56: 25.000000 "," 
 
          timezone_type ":3," 
 
          timezone ":" 
 
          America\/Sao_Paulo "}," 
 
          modified ":{" 
 
          date ":" 
 
          2015 - 09 - 25 18: 56: 25.000000 "," 
 
          timezone_type ":3," 
 
          timezone ":" 
 
          America\/Sao_Paulo "}," 
 
          relativePath ":" 
 
          ws\/uploads\/User\/8\/0278845942. jpg "," 
 
          absolutePath ":" 
 
          ws\/uploads\/User\/8\/0278845942. jpg "," 
 
          role ":[1]," 
 
          language_id ":3 
 
         } 
 
        }]], 
 
       ["Writers", 2, [{ 
 
         "id": 135, 
 
         "role_id": 2, 
 
         "user": { 
 
          "id": 7, 
 
          "username": "camilaguimaraes", 
 
          "email": "camilag 
 
          @gmail.com "," 
 
          firstName ":" 
 
          Camila "," 
 
          lastName ":" 
 
          Guimaraes "," 
 
          created ":{" 
 
          date ":" - 0001 - 11 - 30 00: 00: 00.000000 ", 
 
          "timezone_type": 3, 
 
          "timezone": "America\/Sao_Paulo" 
 
         }, 
 
         "modified": { 
 
          "date": "-0001-11-30 00:00:00.000000", 
 
          "timezone_type": 3, 
 
          "timezone": "America\/Sao_Paulo" 
 
         }, 
 
         "relativePath": null, 
 
         "absolutePath": null, 
 
         "role": [2], 
 
         "language_id": 1 
 
        } 
 
       }, { 
 
        "id": 183, 
 
        "role_id": 2, 
 
        "user": { 
 
         "id": 20, 
 
         "username": "[email protected]", 
 
         "email": "[email protected]", 
 
         "firstName": "Agnaldo", 
 
         "lastName": "Carmo", 
 
         "created": { 
 
          "date": "2015-11-23 10:41: 34.000000 "," 
 
          timezone_type ":3," 
 
          timezone ":" 
 
          America\/Sao_Paulo "}," 
 
          modified ":{" 
 
          date ":" 
 
          2015 - 11 - 23 10: 41: 34 
 
          .000000 "," 
 
          timezone_type ":3," 
 
          timezone ":" 
 
          America\/Sao_Paulo "}," 
 
          relativePath ":null," 
 
          absolutePath ":null," 
 
          role ": [2, 3, 4], 
 
          "language_id": 1 
 
         } 
 
        }, 
 
        { 
 
         "id": 186, 
 
         "role_id": 2, 
 
         "user": { 
 
          "id": 2, 
 
          "username": "[email protected]", 
 
          "email": "[email protected]", 
 
          "firstName": "zarko", 
 
          "lastName": "krneta", 
 
          "created": { 
 
           "date": "-0001-11-30 00:00:00.000000", 
 
           "timezone_type": 3, 
 
           "timezone": "America\/Sao_Paulo" 
 
          }, 
 
          "modified": { 
 
           "date": "2015-06-10 15:51:30.000000", 
 
           "timezone_type": 3, 
 
           "timezone": "America\/Sao_Paulo" 
 
          }, 
 
          "relativePath": "ws\/uploads\/User\/2\/1327788642.jpg", 
 
          "absolutePath": "ws\/uploads\/User\/2\/1327788642.jpg", 
 
          "role": [2], 
 
          "language_id": 1 
 
         } 
 
        }]], 
 
       ["Editors", 3, [{ 
 
          "id": 184, 
 
          "role_id": 3, 
 
          "user": { 
 
           "id": 20, 
 
           "username": "[email protected]", 
 
           "email": "[email protected]", 
 
           "firstName": "Agnaldo", 
 
           "lastName": "Carmo", 
 
           "created": { 
 
            "date": "2015-11-23 10:41:34.000000", 
 
            "timezone_type": 3, 
 
            "timezone": "America\/Sao_Paulo "}," 
 
            modified ":{" 
 
            date ":" 
 
            2015 - 11 - 23 10: 41: 34.000000 "," 
 
            timezone_type ":3," 
 
            timezone ":" 
 
            America\/Sao_Paulo "}," 
 
            relativePath ":null," 
 
            absolutePath ":null," 
 
            role ":[2,3,4]," 
 
            language_id ":1}}]],[" 
 
            Auditors ",4, 
 
            [{ 
 
              "id": 185, 
 
              "role_id": 4, 
 
              "user": { 
 
               "id": 20, 
 
               "username": "[email protected]", 
 
               "email": "[email protected] 
 
                .com "," 
 
               firstName ":" 
 
               Agnaldo "," 
 
               lastName ":" 
 
               Carmo "," 
 
               created ":{" 
 
               date ":" 
 
               2015 - 11 - 23 10: 41: 34.000000 "," 
 
               timezone_type ": 3, 
 
               "timezone": "America\/Sao_Paulo" 
 
              }, 
 
              "modified": { 
 
               "date": "2015-11-23 10:41:34.000000", 
 
               "timezone_type": 3, 
 
               "timezone": "America\/Sao_Paulo" 
 
              }, 
 
              "relativePath": null, 
 
              "absolutePath": null, 
 
              "role": [2, 3, 4], 
 
              "language_id": 1 
 
             } 
 
            }]], 
 
          ["teste", 6, null], 
 
          ["teste1", 7, null], 
 
          ["teste2", 8, null]] 
 
        }
{{ for(var prop in it.userCollection) { }} 
 
     <!-- Prints {{=prop}} "msg" --> 
 
     </br> 
 
     <div> {{=it.userCollection[prop]['attributes'][0]}}</div> 
 
     </br> 
 
     {{ for(var numProp in it.userCollection[prop]['attributes'][2]) { }} 
 
     {{ 
 
      var VRoleId = it.userCollection[prop]['attributes'][2][numProp]['role_id']; 
 
      var user = it.userCollection[prop]['attributes'][2][numProp]['user']; 
 
     }} 
 
     <!-- Prints "a: a1" and "b: b1" --> 
 
      <div>Role id {{=VRoleId }}</div> 
 
      <div>User Name{{=user['username'] }}</div> 
 
     {{ } }} 
 
    {{ } }}

suo risultato

amministratori

Ruolo ID 1 utente [email protected]

Writers

Ruolo id 2 utente Nameca milaguimaraes Ruolo id 2 utente [email protected] Ruolo id 2 utente [email protected]

editori

Ruolo id 3 utente [email protected]

Sindacale

ID ruolo 4 Utente [email protected]

test

teste1

teste2

Problemi correlati