HAML嵌套标签

leo*_*pic 14 haml

我试图嵌套这个

  %h1 Admin Menu
    %small logged in as: #{session[:username]}
Run Code Online (Sandbox Code Playgroud)

得到这样的东西

<h1>Admin Menu <small>logged in as: something</small></h1>
Run Code Online (Sandbox Code Playgroud)

但是,我可以让它显示而不会发出错误的唯一方法就是将它们放在同一级别上

  %h1 Admin Menu
  %small logged in as: #{session[:username]}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

<h1>Admin Menu</h1>
<small>logged in as: something</small>
Run Code Online (Sandbox Code Playgroud)

这可能是愚蠢的事情,但我不知道为什么这不起作用?

Mat*_*ers 28

如果嵌套的所有内容都是内联的,Haml只允许内联嵌套.所以你可以这样做:

%h1 Admin Menu
Run Code Online (Sandbox Code Playgroud)

或这个:

%h1
  Admin Menu
  %small logged in as: #{session[:username]}
Run Code Online (Sandbox Code Playgroud)

但不是这个:

 %h1 Admin Menu
   %small logged in as: #{session[:username]}
Run Code Online (Sandbox Code Playgroud)

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

%li
  One
%li
  Two
%li
  Three
Run Code Online (Sandbox Code Playgroud)

然后说:

%li One
%li Two
%li Three
Run Code Online (Sandbox Code Playgroud)


Swa*_*and 7

我没试过,但是下面的工作不适合你吗?

%h1 
  Admin Menu
  %small logged in as: #{session[:username]}
Run Code Online (Sandbox Code Playgroud)