使用 Slim 在 Rails 内动态添加 active class 到 li
Dynamically add active class to li within Rails using Slim
我正在尝试添加一个活动的 class 以在使用 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的同时为当前页面应用activeclass?
以防万一以后有人需要知道这个答案。
li class="#{active_class('/url')}" = link_to 'Name', '/url'
我正在尝试添加一个活动的 class 以在使用 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的同时为当前页面应用activeclass?
以防万一以后有人需要知道这个答案。
li class="#{active_class('/url')}" = link_to 'Name', '/url'