2011-11-17 108 views
12

我试图巢状HAML嵌套的标签

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

为了得到这样的

<h1>Admin Menu <small>logged in as: something</small></h1> 

但我可以让它显示兵不血刃一个错误的唯一方法是把他们在同样的水平,说

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

,输出:

<h1>Admin Menu</h1> 
<small>logged in as: something</small> 

这是probaby一些愚蠢的,但我不知道这为什么这不起作用?

回答

26

Haml只允许嵌套嵌套,如果所有将嵌套的嵌套。所以,你可以这样做:

%h1 Admin Menu 

或本:

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 

但不是这样的:

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

第一种形式应该被认为是一种方便的缩写。它的存在,所以你可以采取这样的事情:

%li 
    One 
%li 
    Two 
%li 
    Three 

,只是说:

%li One 
%li Two 
%li Three 
+0

谢谢你马特,你是对的钱:) – leopic

7

我还没有试过,但不会为你做以下工作吗?

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 
+0

感谢Swanand,那工作:) – leopic

1

另一个诀窍是这样的。

%h1 
    Admin Menu 
    %small 
    logged in as: 
    =session[:username] 

因为最后两行会里面的“小”来呈现-tag

0

或者你可以只用简单的CSS这样的伎俩,如:

%h1 
    Admin Menu 
    .small{ style: 'font-size: smaller;' } 
     logged in as: 
     = session[:username] 

这种方式,您可以指定其他属性或字体的特定大小。

+0

在这种情况下,标签只是一个例子,但我也想嵌套其他标签,谢谢你的提示。 – leopic