【问题标题】:Dynamically add active class to li within Rails using Slim使用 Slim 在 Rails 中动态添加活动类到 li
【发布时间】:2018-03-26 18:11:44
【问题描述】:

我正在尝试在使用 slim 时添加一个活动类来列出项目。现在我有以下代码:

      li.nav-active = link_to 'One', '/one'
      li.nav-active = link_to '2', '/2'
      li = link_to 'A', '/a'
      li = link_to 'B', '/c'
      li = link_to 'D', '/d'

然后对于我正在使用的助手:

def create_link(text, path)
 class_name = current_page?(path) ? 'nav-active' : ''

 content_tag(:li, class: class_name) do
   link_to text, path
 end
end

这似乎并不实际。前两个列表项会自动将 CSS 应用于 nav-active,无论是否处于活动状态。

然后我切换到以下内容:

      li#{active_class('/one')} = link_to 'One', '/one'
      li.nav-active = link_to '2', '/2'
      li = link_to 'A', '/a'
      li = link_to 'B', '/c'
      li = link_to 'D', '/d'

使用以下助手:

def active_class(link_path)
  current_page?(link_path) ? "nav-active" : ""
end

这里的问题是我得到了 Slim::Parser::SyntaxError。预期属性。

那么有没有一种在使用 Slim 时为当前页面应用活动类的好方法?

【问题讨论】:

    标签: ruby-on-rails slim-lang


    【解决方案1】:

    以防万一有人将来需要知道这一点,这就是答案。

    li class="#{active_class('/url')}" = link_to 'Name', '/url'
    

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多