【问题标题】:Add a class to breadcrumb item using partials使用部分将类添加到面包屑项目
【发布时间】:2015-01-08 16:32:27
【问题描述】:

我对 rails 和 haml 还很陌生。我有一个面包屑,我想用部分渲染,我想将一个变量传递给部分,以便正确的项目获得“启用”类。这是我尝试过的:

= render 'nav_breadcrumb', :locals => {:page1 => true}

在我的 _nav_breadcrumb.html.haml 页面上我有这个:

.overlay-breadcrumb.clearfix
  %span{:class => ("enabled" if :page1)}
    %span 1
  %span{:class => ("enabled" if :page2)}
    %span 2
  %span{:class => ("enabled" if :page3)}
    %span 3

问题是,无论给定的渲染变量如何,所有 3 个都获得了启用的类。

【问题讨论】:

    标签: ruby-on-rails if-statement haml partials


    【解决方案1】:

    查看 Rails 文档中的这一部分: http://guides.rubyonrails.org/layouts_and_rendering.html#passing-local-variables

    貌似在传递变量的时候,需要写{page1:true},然后在模板中直接用名字来引用变量即可。

    = render 'nav_breadcrumb', :locals => {page1: true}
    
    .overlay-breadcrumb.clearfix
        %span{:class => ("enabled" if page1)}
          %span 1
        %span{:class => ("enabled" if page2)}
          %span 2
        %span{:class => ("enabled" if page3)}
          %span 3
    

    【讨论】:

    • 酷,谢谢!我仍然有一个错误,但将“渲染”更改为“部分渲染”似乎可以解决这个问题。然后它抱怨 page2 和 page3 不存在所以我将本地更改为: {page1: true, page2: false, page3: false} 并且它有效。有没有比同时添加所有虚假项目更优雅的方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多