2017-05-18 1 views
0

Ich versuche Array-Operationen wie concat, shuffle und sort während der Pug-Iteration durchzuführen.Sortier- oder Shuffle-Liste während der Pug-Iteration?

von pug Dokumentation, ist dies möglich:

ul 
    each val in [1, 2, 3, 4, 5] 
    li= val 

Aber was ist so etwas wie:

ul 
    each val in sort(list_obj1 + list_obj2) // i would also like to shuffle a list here... 
    li= val 

In meinem Fall list_obj1 und list_obj2 werden von einem Knoten js Server gesendet. Ich weiß, dass ich die sortierte verkettete Liste auf der Serverseite berechnen kann. Aber aus verschiedenen Implementierungsgründen muss ich es clientseitig berechnen.

Wie kann ich das erreichen? Ist es auch möglich, underscore für die Array-Operationen zu verwenden?

Antwort

4

Sie können Mops mit JS mischen, so ist nichts unmöglich:

- var list = [1,2,3,4,5] 
- list.sort((a,b)=>{return Math.random()-0.5}) 
each val in list 
    div= val 

pen

+0

Eine Follow-up-Frage: mein ul-Element hat eine Schaltfläche "Aktualisieren", möchte ich die Reihenfolge randomisiert zu werden Jedes Mal, wenn ich auf Refresh klicke, gibt es eine Möglichkeit, den Js-Code innerhalb von Mug für ein Ereignis aufzurufen, zB wenn auf eine Schaltfläche geklickt wird? –

+0

Nein, wenn einige Pug-Randomisierung/-Sortierung in einem Projekt obligatorisch ist, könnte man X-Zufallszahlen für jedes Element zeichnen und dann clientseitig durch vorherige Randomisierungen laufen - aber ich glaube, das wäre kaum brauchbar. Normalerweise ist der Zugriff auf Mops nicht möglich, nachdem die Website von einem Browser aufgerufen wurde. Daher sollten neue Randomisierungen in JS der Website neu geschrieben werden. –