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">
我做错了什么?或者哈姆尔错了?
答案 0 :(得分:1)
尝试将_head.html.haml
重命名为!!!
%html
= render 'shared/head'
。适合我。
因此最终用法将是相同的:
%head(data-hook='inside_head')
btw haml有更好的方法来传递haml标签的属性:
pi-repeat