bedingte Schleife in mustache.js

8

Wie kann ich <hr> nach jeder Iteration ausgeben, außer letzte mit mustache.js. Ich habe versucht, Javascript für die Schleife, aber ich konnte nicht loswerden% co_de letzte%. (Einige Leute schlagen vor, lenker.js zu benutzen, aber ich möchte mit Schnurrbart bleiben.)

Hier ist mein JSON (die Liste wird größer, je mehr Mitarbeiter hinzugefügt werden)

%Vor%

Ich möchte diese HTML-Ausgabe:

%Vor%     
Dmitry 01.02.2012, 01:27
quelle

2 Antworten

21

Wenn Sie sich das Moustache-Handbuch ansehen, sollten Sie die so genannten "invertierten Abschnitte" verwenden. Aus dem Handbuch:

  

Ein invertierter Abschnitt beginnt mit einem Caret (Hut) und endet mit einem Schrägstrich.   Das heißt {{^ person}} beginnt währenddessen eine "person" invertierte Sektion   {{/ person}} beendet es.

     

Während Abschnitte verwendet werden können, um Text ein- oder mehrmals basierend zu rendern   Der Wert des Schlüssels, invertierte Abschnitte können Text einmal basierend darauf wiedergeben   der umgekehrte Wert des Schlüssels. Das heißt, sie werden wiedergegeben, wenn die   Schlüssel existiert nicht, ist falsch oder ist eine leere Liste.

Um dies zu nutzen, können Sie dem letzten Mitarbeiter ein zusätzliches Attribut hinzufügen, um es zu unterscheiden.

JSON:

%Vor%

Schnurrbart-Vorlage:

%Vor%

Dies ist sehr ähnlich dem, was die Moustache-Demo zeigt, indem Sie das Attribut "first" für das erste Objekt im Array verwenden von Farben.

    
danott 01.02.2012, 01:55
quelle
10

Wenn der Zweck von <hr/> rein für Stil ist, warum nicht einen CSS-Selektor wie :not(:last-child) verwenden?

JavaScript:

%Vor%

CSS:

%Vor%

Hier ist ein funktionierendes jsFiddle, um es in Aktion zu sehen

    
maxbeatty 01.02.2012 07:33
quelle

Tags und Links