Variable in der Vorlage underscore.js optional machen

8

Ich habe diesen Code:

%Vor%

und in HTML:

%Vor%

/foo gibt etwas wie {"name":"joe","phone":"12345"} zurück, aber manchmal hat es nicht phone und gibt einfach {"name":"joe"} zurück, was die Auswertung der Vorlage stört, sodass nichts in output gedruckt wird. Wie mache ich eine Variable optional?

BEARBEITEN: /foo liegt außerhalb meiner Kontrolle

    
wiradikusuma 09.09.2011, 17:07
quelle

6 Antworten

7

Der Operator || ist nützlich für diese Art von Dingen:

%Vor%

Da Sie jedoch bereits Underscore verwenden, können Sie die Funktion _.defaults verwenden. Dieser Ansatz ist besonders nützlich, um Standardwerte für mehrere Felder bereitzustellen:

%Vor%     
namuol 09.09.2011, 17:26
quelle
5

Ich mochte @namuol-Lösung, eine andere Sache, die wir tun könnten, ist die Standard-Hash-Werte am Modell erweitert

%Vor%

Nur eine weitere Option.

    
Roberto Alarcon 18.12.2011 01:05
quelle
3

Sie können einen html

haben %Vor%

Verwenden Sie die Vorlage wie unten, um ein nicht definiertes Variablenproblem für phone

zu vermeiden %Vor%     
Venkat Kotra 08.03.2013 06:28
quelle
1

Eine praktische Lösung wäre es, phone in das Objekt einzufügen, aber mit einem leeren Wert:

%Vor%     
quelle
1

Oben gibt es einige gute Antworten, aber Sie können _.partial verwenden, um eine einzelne Funktion zu erhalten, die eine Vorlage mit Standardwerten anwendet:

%Vor%     
Cody 18.03.2015 16:38
quelle
1

Und dann ist das offensichtlich: Lege das oben in deine Vorlage:

%Vor%

Arbeitsschnipsel:

%Vor% %Vor%

(auch als jsfiddle )

    
Peter V. Mørch 10.07.2017 08:34
quelle