Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mustache.js: Iterate over a list received via json [duplicate]

Tags:

mustache

Possible Duplicate:
Mustache JS Template with JSON Collection

I have a json response like this that I want to use with Mustache.js:

[
    {"id": "1", "details": {"name": "X", "type":"Y" }},
    {"id": "2", "details": {"name": "aName", "type":"something" }}
]

How do I iterate over this using mustache.js?

like image 580
Stealth Avatar asked Aug 09 '12 20:08

Stealth


2 Answers

The array itself should be a value in a bigger Object, like so:

var obj = {
  arr: [
    {"id": "1", "details": {"name": "X", "type":"Y" }},
    {"id": "2", "details": {"name": "aName", "type":"something" }}
  ]
}

Then you can do:

{{#arr}}
   my id: {{id}}
{{/arr}}

the use for {{#bla}} is actually overloaded. When the property it acts upon is an array it will loop. When the property is an object itself it will 'enter' that object. Given your example:

{{#arr}}
   my id: {{id}} <br/>
   {{#details}}
     and my name: {{name}}
   {{/details}}
{{/arr}}
like image 93
Geert-Jan Avatar answered Nov 10 '22 10:11

Geert-Jan


I found another way of doing this which is pretty similar to Geert-Jan except that you do not have to assign the array to a Javascript object.

{{ #. }}
   <p> {{ id }} </p>
   <ul> {{#details}}
        {{name }}
        {{ type }}
   {{/details}}
   </ul>
{{ /. }}
like image 29
Stealth Avatar answered Nov 10 '22 10:11

Stealth