2012-04-12 12 views
0

Mit Moustache js (eine Logik weniger Templating) gibt es eine Möglichkeit, ich kann Switch-Fall erreichen? dies ich brauche, weil ein Klassenelement auf dom basierend auf dem Wert zum Beispiel zugeordnet:Switch case in MoustacheJs

switch(tasks.Count) 
{ 
    case 0: 
     element.Class = "no-tasks"; 
    break; 
    case 1: 
     element.Class = "one-tasks"; 
    break; 
. 
. 
. 
} 

, dass der Code ist jetzt ich habe, wie Transformation ich es Schablone (Ich glaube, die Methoden auf Modell gemacht wird, ist die eine Option) Aber Methoden hinzufügen, um zu bestimmen, welche Klasse zu verwenden ist ein Overkill und außerdem wird das mein Modell zu einem Sumpf verschmutzen !!

  • Ich frage das, weil ich Nustache einen Port von MustacheJs zu C# verwenden, .NET verschachtelten model.Anything zu machen, die auch für Schnurrbart gilt, gelten

Antwort

2

Es gibt ein paar Möglichkeiten, um Nustache, dies zu tun .

Wenn in JavaScript Moustache eine Funktion in einem Wert vorfindet, wird sie mit dem eingeschlossenen Text als einziges Argument aufgerufen.

var data = { 
    foo: function(text) { return '<b>' + text + '</b>'; } 
} 

Schnurrbart

{{#foo}} 
    HI I LIKE FISH, thanks. 
{{/foo}} 

Ausgänge

<b>HI I LIKE FISH, thanks.</b> 

Suche nach "Lambda" in den Schnurrbart docs.

Eine andere Möglichkeit, es zu tun, ist eine falsche/truthy Prüfung zu tun.

Daten

{ foo: true } 

Schnurrbart

{{#foo}} 
    output this if true. 
{{/foo}} 
{{^foo}} 
    output if false 
{{/foo}}