【发布时间】:2013-01-08 17:31:12
【问题描述】:
这个 HAML(带有链式助手):
- haml_tag :a, helper_method_1(local1, local2).merge( helper_method_2 local3, local4 ) do
%div{ style: helper_method_3(local5, local6) }
%span= local7
%h3{style: "color: black"}= local8
正在生成这个(倒置)HTML:
<div style="prop1: val:1; prop2: val2;"></div>
<span>Span Text</span>
<h3 style="prop3: val3;">H3 Text</h3>
<a class="class-value" id="id-value" href="href-value"></a>
但是如果我们去掉链式方法,比如:
(...)
- haml_tag :a, helper_method_1(local1, local2) do
(...)
比 HTML 按预期呈现:
<a class="class-value" id="id-value" href="href-value">
<div style="prop1: val:1; prop2: val2;"></div>
<span>Span Text</span>
<h3 style="prop3: val3;">H3 Text</h3>
</a>
HAML 有什么问题?
【问题讨论】:
-
你能在第一行添加明确的括号
- haml_tag(:a, helper_method_1(local1, local2).merge( helper_method_2(local3, local4) )) do看看是否有效? -
您确定 HAML 正在这样做吗?
<a>在 DOM 中的父元素是什么? -
我和 mu 在一起;我不确定在 div/etc 周围包裹一个锚点。是有效的 HTML。
-
很难解释,但确实是括号问题。实际上,我的第一个代码块与我的真实示例略有不同。在我的代码中,
helper_method_2收到了local3和local4没有括号。我想我只是无法完全弄清楚这个红宝石选项。无论如何...非常感谢。我将更新示例并开始回答。也许有一天会有一个更高的人完成它。 :) -
用
<a>包裹<div>是不合法的。 Tidy 说:missing </a> before <div>.
标签: html ruby-on-rails ruby haml