2011-04-05 52 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"