Pregunta

Tengo modelo:

[
  {
    "ID": 5,
    "email": "xx@vflbg.com"
  },
  {
    "ID": 6495,
    "email": "email@monkey.com"
  }
]

Código para ITERATINA EN HANDERBARS:

   {{#each xxx}}
    <p>{{email}}</p>
   {{/each}}

¿Cómo define xxx?

Si JSON tenía nombre en modelo como:

   users: [
      {
        "ID": 5,
        "email": "xx@vflbg.com"
      },
      {
        "ID": 6495,
        "email": "email@monkey.com"
      }
    ]

Iría simple iterar en los manillares como:

   {{#each users}}
    <p>{{email}}</p>
   {{/each}}

¿Fue útil?

Solución

Si tiene esto:

var a = [
  {
    "ID": 5,
    "email": "xx@vflbg.com"
  },
  {
    "ID": 6495,
    "email": "email@monkey.com"
  }
];

Luego, solo suministre el nombre deseado cuando llame a la plantilla compilada:

var t = Handlebars.compile($('#t').html());
var h = t({ users: a });

Eso lo dejará con el HTML deseado en h.

Demo: http://jsfiddle.net/ambiguo/zgvjz/

Si tiene una colección construida a partir de los datos:

var c = new C(a);

Luego llamaste la plantilla como esta:

var h = t({ users: c.toJSON() });

Demo: http://jsfiddle.net/ambiguo/uf3tj/

Otros consejos

Esto también funciona:

{{#each this}}
<p>{{email}}</p>
{{/each}}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top