129 votos

acceso al manubrio Artículo de la matriz

Estoy tratando de ser capaz de especificar el índice de un artículo en un Array dentro de una plantilla de manillar:

{
  people: [
    {"name":"Yehuda Katz"},
    {"name":"Luke"},
    {"name":"Naomi"}
  ]
}

usando esto:

<ul id="luke_should_be_here">
{{people[1].name}}
</ul>

Si lo anterior no es posible, ¿cómo escribiría a un ayudante que pudiera acceder a un elemento específico dentro de la matriz?

214voto

dhorrigan Puntos 1284

Pruebe esto:

<ul id="luke_should_be_here">
{{people.1.name}}
</ul>

163voto

Arjan Puntos 7154

Lo siguiente, con un punto adicional antes del índice funciona tal como se esperaba. Aquí, los corchetes son opcionales cuando el índice es seguido por otra propiedad:

{{people.[1].name}}
{{people.1.name}}

Sin embargo, los corchetes son requerido en:

{{#with people.[1]}}
  {{name}}
{{/with}}

En este último, usando el número de índice sin los corchetes se obtendría uno:

Error: Parse error on line ...:
...     {{#with people.1}}                
-----------------------^
Expecting 'ID', got 'INTEGER'

Como un aparte: los paréntesis son (también) utilizados para sintaxis de segmento-literal para referirse a los identificadores reales (no a los números de índice) que de otro modo no serían válidos. Más detalles en ¿Qué es un identificador válido?

(Probado con manillares en YUI.)

9voto

Bret Weinraub Puntos 101

Si las características indocumentadas no son su juego, lo mismo se puede lograr aquí:

Handlebars.registerHelper('index_of', function(context,ndx) {
  return context[ndx];
});

Luego en una plantilla

{{#index_of this 1}}{{/index_of}}   

Escribí lo anterior antes de que me pusiera en contacto con

this.[0]

No te veo llegar muy lejos con el manillar si no estás escribiendo tus propios ayudantes.

5voto

FMQB Puntos 108
{{#each array}}
  {{@index}}
{{/each}}

0voto

user1378423 Puntos 39

Por favor, pruebe esto, si quiere buscar primero/último.

{{#each list}}

    {{#if @first}}
        <div class="active">
    {{else}}
        <div>
    {{/if}}

{{/each}}

{{#each list}}

    {{#if @last}}
        <div class="last-element">
    {{else}}
        <div>
    {{/if}}

{{/each}}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X