2012-05-25 12 views
5

Por lo tanto, he encontrado que los elementos de la matriz se puede acceder en manillares usando:Conseguir el último elemento de una matriz JSON en una plantilla Manillar

{{myArray.2.nestedObject}} and {{myArray.0.nestedObject}} 

..para obtener los elementos tercero y primero, por ejemplo. (handlebars-access-array-item)

¿Hay alguna manera de obtener el último elemento de una matriz? He intentado crear un ayudante para que:

Handlebars.registerHelper("lastElement", function(array) { 
    return array.last(); //Array.prototype extension 
}); 

... y decir que es como sigue en la plantilla:

{{lastElement myArray}} or even {{lastElement myArray.lastElement nestedArray}} 

Lamentablemente, esto no funciona. Las funciones auxiliares devuelven cadenas aparentemente. Lo que necesito es una forma de poder hacer esto incluso con arreglos multidimensionales.

+2

Tenga en cuenta que puede usar '{{myArray. [2] .nestedObject}}' para el primer ejemplo. La [misma notación literal de segmento] (https://github.com/wycats/handlebars-site/issues/26) podría ayudar con un número de índice variable? – Arjan

Respuesta

7

Debería funcionar, lo he probado.

Plantilla:

{{last foo}} 

datos:

{foo : [1,2,3,4,5,6]} 

Ayudante:

Handlebars.registerHelper("last", function(array) { 
    return array[array.length-1]; 
}); 
-1

La pieza de código anterior funciona bien en todos los casos. Pero si la matriz pasó si una matriz nula, la posibilidad de que la función del manillar arroje un error está ahí. En su lugar, realice una comprobación nula y luego devuelva el valor correspondiente.

Cuestiones relacionadas