LENKER-Block Helfer : jeder mit Sortieren
Ich habe ein array von json-Objekten, die ich die Ausgabe über eine LENKER-Vorlage; ich bin derzeit dabei mit {{#jedes Objekt}}...{{/each}}. Ich brauche jetzt um die Objekte zu Sortieren, indem Sie eine der Eigenschaften des Objekts, die wiederum kein problem mit einem LENKER Helfer & coffeescript, allerdings habe ich ein problem bei meinem template, dass ich kann nicht herausfinden, wie man iteriert über die sortierten array mit jedem.
Meine Forschung bisher gibt, muss ich wohl zum schreiben eines benutzerdefinierten LENKER Helfer, die in der Tat sein:
{{#each_with_sort array}}
Meine bestehende Art Helfer ist wie diese
Handlebars.registerHelper sort_me =>
myArray.sort (a,b)->
return if +a.sort_index >= +b.sort_index then 1 else -1
aber ich bin kämpfen, um in der Lage sein zu verwenden, das sortierte array in der Vorlage - zum Beispiel, es ist nicht so einfach, wie
{{#each sort_me(myArray)}}
Die Daten kommen von einem Drittanbieter-API, so muss ich durchführen Sortierung in LENKER/coffeescript.
InformationsquelleAutor Tykus | 2013-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die einfachste Sache zu tun wäre, um die Daten zu Sortieren, bevor es auf LENKER, dann können Sie
{{#each ...}}
als üblich, und kein Helfer benötigt werden. Diese Art von Ansatz ist durchaus üblich, mit LENKER, die Vorlage ist oft geteilt in zwei Teile: ein (Java - |Kaffee -) Skript Stück für Daten mangeln/Neuordnung und der Vorlage angemessen.Als ein beiseite, die Sie Bearbeiten möchten Ihre Komparator-Funktion Verhalten Eigentum. Aus der Handbuch:
Du willst also zurück
0
wenna.sort_index
undb.sort_index
sind die gleichen, so etwas wie dieses:Wenn Sie tun müssen, die Sortierung innerhalb der Vorlage, dann müssten Sie hinzufügen, um eine benutzerdefinierte
each_with_sort
Helfer zu tun, sowohl die Sortierung und die iteration, so etwas wie dieses:die Vorlage wäre so:
Demo: http://jsfiddle.net/ambiguous/zusq2tt4/
Wie würde der code für ein Helfer Aussehen, die durchläuft die Eigenschaften eines Objekts in einer geordneten Art und Weise?
JavaScript-Objekte haben keine festgelegte Reihenfolge, so dass Sie brauchen, um zu konvertieren das Objekt in ein
[[key,value],...]
array-von-arrays und Sortieren; oder Sie können extrahieren Sie die Schlüssel in einem array Sortieren Sie den array-Schlüssel, und iteriert über die sortierten Schlüssel.Danke. Ich Tat das letztere und integrierte es in meine eigene
#each
Variante.Haben Sie einen Blick auf meine aktualisierte Antwort. Ich denke, die
@index
Zeug wurde Hinzugefügt LENKER, nachdem ich gepostet diese Antwort, drei Jahre sind eine lange Zeit in software-nach all 🙂InformationsquelleAutor mu is too short