2011-04-05 44 views
0

haml doc它說這是haml文檔不正確?

如果指定一個值,並將其 計算結果爲false會被忽略; 否則它會轉換爲 字符串。例如:

.item{:class => @item.is_empty? && "empty"} 

可以呈現爲兩種的:

class="item" 
class="item empty" 

但是,這沒有任何意義了我。由於item.is_empty?就是被評估爲真或假,應該正確的輸出是......

class="empty" 
class="item empty" 
+0

不,該文檔是正確的。 – Phrogz 2011-04-05 05:11:11

回答

4
@item.is_empty? && "empty" 

這裏,如果@item是空的,.is_empty?回報true,所以&&的右手操作數表達式被評估。這個表達式的結果是"empty"
如果@item空,.is_empty?返回false,所述&&表達的右邊的操作數是評估,並且表達的結果是false

所以,你會使用其中任一結束:

.item{ :class => "empty" } 
.item{ :class => false } 

什麼HAML文檔說的是第二種情況(「一單價值評估爲假」)被忽略,所以把它歸結爲這兩種情況下:

.item{ :class => "empty" } 
.item{ } 

導致任一:

class="item empty" 
class="item"