Ruby Haml - 删除标记(&& ||)属性

时间:2016-02-28 23:17:06

标签: ruby haml

haml的奇怪行为 - 它会删除标记属性。

例如,我写了两种方式:

首先 - 内部布局:

!!!
%html{ lang: I18n.locale }
  %head{ 'data-hook' => 'inside_head' }
    %title= "sample title"
    %meta{ content: 'text/html; charset=UTF-8', 'http-equiv' => 'Content-Type' }

它产生下一个代码:

<!DOCTYPE html>
<html lang="ru">
  <head data-hook="inside_head">
    <title>    sample title
</title>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

如果没有查看标识,一切都很好,但是如果我在局部写头并渲染它,haml会删除头标记,但是传递部分内容! 代码,我的第二个和优先的方式是:

!!!
%html{ lang: I18n.locale }
  = render 'shared/head', title: "sample app"

和部分共享/ head.haml:

%head{ 'data-hook' => 'inside_head' }
  %title= title
  %meta{ content: 'text/html; charset=UTF-8', 'http-equiv' => 'Content-Type' }

但是,haml产生下一个奇怪的代码,标记&#39; head&#39;错过了:

<!DOCTYPE html>
<html lang="ru">
  <body>

  <title>  sample app
</title>
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

我做错了什么?或者哈姆尔错了?

查看我的布局文件: enter image description here

查看我的头文件: enter image description here

查看结果html: enter image description here

1 个答案:

答案 0 :(得分:1)

尝试将_head.html.haml重命名为!!! %html = render 'shared/head' 。适合我。 因此最终用法将是相同的:

%head(data-hook='inside_head')

btw haml有更好的方法来传递haml标签的属性:

pi-repeat