2013-10-14 101 views
6

在枝杈空變量我有運營商和測試空變量(字符串或數組):試驗中痛飲模板

{% if info is empty %} 
    ... 
{% endif %} 

我怎樣才能做這樣的事情在痛飲模板?

回答

15

只需做

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

這將匹配字符串(""),陣列([])和不具有一.length屬性與truthy值的任何其他對象。

+1

是的。 Swig沒有像Jinja和Twig這樣的「測試」。有更好的支持內置插件可以直接轉換成JavaScript,就像這裏給出的例子。 –

+0

嘿保羅,swig真的很好,我應該早點知道它。一個問題:檢查元素是否在數組中的最好方法是什麼 - 我會爲它寫一個過濾器,對吧? – sebilasse

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

的對象/字典空測試

0

請注意,如果你想從同號類型的字段零值區分一個未定義的值,你需要做的:

//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 %}