2013-10-14 11 views

Antwort

15

einfach tun

{% if !info.length %} 
... 
{% endif %} 

Dies wird Strings entsprechen (""), Arrays ([]) und jedes andere Objekt, das keine .length Eigenschaft mit truthy Wert hat.

+1

Ja. Swig hat keine "Tests" wie Jinja und Twig. Es gibt besser unterstützte integrierte Funktionen, die wie in dem hier angegebenen Beispiel direkt in JavaScript übersetzt werden. –

+0

Hey Paul, Swig ist wirklich nett und ich hätte es früher wissen müssen. Eine Frage: Was ist der beste Weg zu überprüfen, ob ein Element in einem Array ist - ich würde dafür einen Filter schreiben, oder? – sebilasse

0
{% if Object.keys(info).length != 0 %} 

für ein Objekt/dict leer Test

0

Beachten Sie, dass, wenn Sie einen nicht definierten Wert von einem Nullwert in einem Feld mit Nummerntyp zu differenzieren wollen, müssen Sie tun:

//this test will be true only on undefined values 
{% if !field and field!==0 %} // note the double = !!. indeed in swig and in js !undefined and !0 are both true values 
// this one will be true for undefined and 0 value fields 
{% if !field %} 
0
{% if Object.length > 0 %} 

{% endif %}