2011-11-17 139 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