2013-01-16 7 views
8

Ist es möglich, Lenker mit Objekten zu verwenden, die numerische Tasten haben?Verwenden von Objekten mit numerischen Eigenschaften in lastlebars.js

Zum Beispiel:

var str = "<div>{{apples}}</div>", 
    tmpl = Handlebars.compile(str); 

tmpl({apples: "works!"}); // returns "<div>works!</div>" 

große Arbeiten, aber

var str = "<div>{{4}}</div>", 
    tmpl = Handlebars.compile(str); 

tmpl({4: "works!"}); 
// returns Error: Parse error on line 1: <div>{{4}}</div> -------^ Expecting 'DATA', 'ID', got 'INTEGER' 

Ich konnte nicht alle Verweise auf diese finden bei der Suche, und ich habe noch nicht erforscht den Quellcode.

Antwort

16

So nach umsah weiter, fand ich, ich brauchte die Zahl in eckigen Klammern wickeln, wie:

{{[4]}}

Hier ist ein Link zu einem halb relevanten SO How do I access an access array item by index in handlebars?

die obigen Frage link bezieht sich auf den Zugriff auf Array-Elemente, aber die Antwort gab mir die Idee zu versuchen, den numerischen Pfad in eckigen Klammern zu umbrechen.

+3

Als eine Nebenbemerkung: der Lenker Autor nennt diese Klammern die [Segment-Literal-Syntax] (http://handlebarsjs.com/expressions.html), um auf tatsächliche Bezeichner (keine Indexnummern) zu verweisen, die sonst ungültig wären. Weitere Details unter [Was ist eine gültige Kennung?] (Https://github.com/wycats/handlebars-site/issues/26) – Arjan

+0

Nizza! Arbeitet auch mit Meteor JS Blaze Templates, wie ich gerade herausgefunden habe. – DeBraid

Verwandte Themen