Pergunta

Eu tenho o modelo:

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

Código para iterar no guiador:

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

como posso definir xxx ?

Se JSON tinha nome no modelo como:

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

Eu seria simples iterar no guidão, como:

   {{#each users}}
    <p>{{email}}</p>
   {{/each}}
Foi útil?

Solução

Se você tem isso:

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

Em seguida, basta fornecer o nome desejado quando você chamar o modelo compilado:

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

Que vai deixar você com o seu desejado HTML h.

Demonstração: http://jsfiddle.net/ambiguous/ZgVjz/

Se você tem uma coleção construída a partir de dados de:

var c = new C(a);

Então você gostaria de chamar o modelo como esse:

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

Demonstração: http://jsfiddle.net/ambiguous/uF3tj/

Outras dicas

Isso funciona também:

{{#each this}}
<p>{{email}}</p>
{{/each}}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top