Rails:禁用 link_to link 不工作但隐藏 link_to 工作
Rails: Disabling link_to link not working but hidden link_to working
link_to 方法未被禁用:-
<%= link_to edit_cabinet_path(object), remote: true, disabled: true do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
但如果我喜欢下面隐藏 link
<%= link_to edit_cabinet_path(object), remote: true, style: "display:none;" do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
现在的问题是如何禁用这种类型的 link with block,以及第二个代码有效而第一个无效的原因是什么。
实际上 link_to
没有可用的 disabled
属性,只有 button_to
标签可用。
更多信息请参考这里:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
在这种情况下,您可能想使用 link_to_if
,请看一下:http://apidock.com/rails/v4.2.1/ActionView/Helpers/UrlHelper/link_to_if
您可能正在寻找 link_to_if
。 link_to_if
使您的 link 只有在您的条件通过时才可点击。
你的代码应该是这样的:
<%= link_to_if false, edit_cabinet_path(object), remote: true do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
要使其动态化,您可以调用满足 link 是活动还是非活动的条件,例如:
<%= link_to_if cabinate.active?,
"<span class='glyphicon glyphicon-pencil'></span>".html_safe,
edit_cabinet_path(object), remote: true %>
希望这能回答您的问题..
link_to_if 没有按预期工作。当您的条件为 false 作为后备时,它仅呈现给定的块。
https://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if#1589-Passing-a-block-does-not-behave-as-expected
在我的例子中,我为给定的块制作了一个 Proc
<%link_block = Proc.new{%>
<span class="glyphicon glyphicon-pencil"></span>
<%}%>
<%if condition?%>
<%= link_to edit_cabinet_path(object), remote: true, disabled: true, &link_block%>
<%else%>
<%link_block.call%>
<%end%>
我写了一些简单的 JS 让你可以添加 disabled: true
到 link_to
方法
//this allows us to use html disabled attribute in rails
//to prevent clicking on a disabled link from doing anything
$('a[disabled]').click(function(e){
e.stopImmediatePropagation()
e.preventDefault();
});
link_to 方法未被禁用:-
<%= link_to edit_cabinet_path(object), remote: true, disabled: true do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
但如果我喜欢下面隐藏 link
<%= link_to edit_cabinet_path(object), remote: true, style: "display:none;" do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
现在的问题是如何禁用这种类型的 link with block,以及第二个代码有效而第一个无效的原因是什么。
实际上 link_to
没有可用的 disabled
属性,只有 button_to
标签可用。
更多信息请参考这里:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
在这种情况下,您可能想使用 link_to_if
,请看一下:http://apidock.com/rails/v4.2.1/ActionView/Helpers/UrlHelper/link_to_if
您可能正在寻找 link_to_if
。 link_to_if
使您的 link 只有在您的条件通过时才可点击。
你的代码应该是这样的:
<%= link_to_if false, edit_cabinet_path(object), remote: true do %>
<span class="glyphicon glyphicon-pencil"></span>
<% end %>
要使其动态化,您可以调用满足 link 是活动还是非活动的条件,例如:
<%= link_to_if cabinate.active?,
"<span class='glyphicon glyphicon-pencil'></span>".html_safe,
edit_cabinet_path(object), remote: true %>
希望这能回答您的问题..
link_to_if 没有按预期工作。当您的条件为 false 作为后备时,它仅呈现给定的块。
https://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if#1589-Passing-a-block-does-not-behave-as-expected
在我的例子中,我为给定的块制作了一个 Proc
<%link_block = Proc.new{%>
<span class="glyphicon glyphicon-pencil"></span>
<%}%>
<%if condition?%>
<%= link_to edit_cabinet_path(object), remote: true, disabled: true, &link_block%>
<%else%>
<%link_block.call%>
<%end%>
我写了一些简单的 JS 让你可以添加 disabled: true
到 link_to
方法
//this allows us to use html disabled attribute in rails
//to prevent clicking on a disabled link from doing anything
$('a[disabled]').click(function(e){
e.stopImmediatePropagation()
e.preventDefault();
});