【问题标题】:HAML: remove white space after "link_to"HAML:删除“link_to”之后的空格
【发布时间】:2011-08-06 12:15:13
【问题描述】:

以下代码在 HTML 中留下一个空格:

= link_to "Login", "#"

通常,HAML 允许通过将“>”放在行尾来删除它,例如:

%input#query{:type => "text", :value => "Search"}>

但是,当插入 Rails 代码时,这似乎是不可能的。

我该如何解决这个问题?

【问题讨论】:

标签: ruby-on-rails haml


【解决方案1】:

span 的解决方案并不理想,因为它添加了一个需要处理的不必要的 html 标签,如果你想避免<span>,你应该使用 HAML 的succeed

= succeed "," do
  = link_to "Login", "#"

这将导致以下 HTML 被呈现:

Login,

而不是

Login ,

注意,如果要达到以下效果:

Login,Profile

即逗号和两个链接之间没有任何空格,您应该执行以下操作:

= succeed link_to "Profile", '#' do
  = succeed "," do
    = link_to "Login", '#'

这很乏味

【讨论】:

【解决方案2】:

这个怎么样?

%span>= link_to "Login", "#"

它在链接周围增加了一个额外的跨度,但这些都是无害的。

我发现 haml 可能对这些极端情况有一点问题 :(

【讨论】:

    【解决方案3】:

    您可以在下一行使用>

    = link_to "Login", "#"
    #something_else>
    

    【讨论】:

    • 谢谢,%span{:style => "display:none;"}> 似乎工作正常,但多次使用它是一个糟糕的解决方案......我希望有更好的方法.
    【解决方案4】:

    对于任何来到这个帖子的人,我发现当链接位于句子末尾时,我最需要删除空格。

    我通常会使用:

    = link_to("Login", '#) + '. '

    导致:

    <a href="#">Login</a>.

    【讨论】:

      【解决方案5】:

      这是另一个使用 :ruby 过滤器去除几条轨道线之间空格的糟糕替代解决方案:

      :ruby
                   haml_io.write f.hidden_field('params_ar[][units]', value: 'time')
                   haml_io.write f.text_field("params_ar[][minutes]", value:pars[param_num][:minutes],class:'time-input minutes', placeholder:'mm')
                   haml_io.write ':'
                   haml_io.write f.text_field("params_ar[][seconds]", value:pars[param_num][:seconds],class:'time-input seconds' ,placeholder:'ss')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-26
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 2017-02-03
        • 1970-01-01
        • 2017-11-17
        相关资源
        最近更新 更多