2012-05-25 3 views
5
Erste

So fand ich, dass Array-Elemente in Lenkern zugegriffen werden können:das letzte Element aus einem JSON-Array in einem Lenker Vorlage

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

..um die dritten und erste Elemente zum Beispiel zu bekommen. (handlebars-access-array-item)

Gibt es eine Möglichkeit, das letzte Element von einem Array zu bekommen? Ich habe versucht, die Schaffung eines Helfer für sie:

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

... und nannte es, wie in der Vorlage folgt:

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

Leider funktioniert das nicht. Hilfsfunktionen geben scheinbar Zeichenfolgen zurück. Was ich brauche, ist eine Möglichkeit, dies auch mit mehrdimensionalen Arrays zu tun.

+2

Beachten Sie, dass Sie '{{myArray. [2] .nestedObject}}' für das erste Beispiel verwenden können. Die [gleiche Segment-Literal Notation] (https://github.com/wycats/handlebars-site/issues/26) könnte für eine variable Indexnummer helfen? – Arjan

Antwort

7

Sollte funktionieren, habe ich es getestet.

Vorlage:

{{last foo}} 

Daten:

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

Helper:

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

Das obige Stück Code alles in Ordnung in den Fällen funktioniert. Aber wenn das Array übergeben wurde, wenn ein Null-Array, Möglichkeit der Lenkerfunktion Wurffehler ist da. Führen Sie stattdessen eine Nullprüfung durch und geben Sie den Wert entsprechend zurück.

Verwandte Themen