HAML标签意外关闭

时间:2014-12-26 18:29:19

标签: ruby-on-rails ruby haml

我有一个haml文件,其中包含以下内容:

#test-zone
  %p.test-class
    %p
      = "The test works!"

我期待以下输出:

<div id='test-zone'>
  <p class='test-class'>
    <p>The test works!</p>
  </p>
</div>

但我所看到的是:

<div id='test-zone'>
  <p class='test-class'></p>
    <p>The test works!</p>
  <p></p>
</div>

我很困惑为什么

标签会自行关闭。我也不知道这个额外的

标签是怎么回事。我没有太多haml的经验,我也无法找到解决这个问题的方法。您需要我提供的任何其他信息,我很乐意提供。

1 个答案:

答案 0 :(得分:3)

Haml本身正在产生你期望的输出:

<div id='test-zone'>
  <p class='test-class'>
    <p>
      The test works!
    </p>
  </p>
</div>

但是,这是无效的HTML,<p>不允许在另一个<p>内。您可能正在查看浏览器的检查器窗口,其中显示了“已更正”的标记。如果直接查看源代码,您将看到预期的(无效的)代码。

修复只是为了确保您使用有效的HTML,或许将test-class段改为div。