Lan*_*ard 36 ruby-on-rails graceful-degradation unobtrusive-javascript ruby-on-rails-3
Rails 3做了一些很酷的东西,让Javascript不引人注目,所以他们做了这样的事情:
= link_to "Logout", user_session_path, :method => :delete
Run Code Online (Sandbox Code Playgroud)
..转换为
<a href="/logout" data-method="delete" rel="nofollow">Logout</a>
Run Code Online (Sandbox Code Playgroud)
但它只是发生在我身上..当我关闭javascript时,方法不再是DELETE,它是按预期获得的.那么是否有计划或者有某种方法允许这些data-属性优雅地降级,以便链接仍然是DELETE请求?
Jim*_*dra 37
他们在Rails 3中使用这些data-属性所做的改变并不是关于优雅的降级,而是关于不引人注目的JavaScript.
在Rails 2中,:method => :delete在链接上指定会生成一大堆内联JavaScript,它们将创建一个带有隐藏输入的表单,然后提交表单.这和现在一样:关闭JavaScript并默认为GET请求.因此,支持不使用JavaScript的情况与以前一样.
一种选择是使用表单/按钮而不是链接,因此您可以将该方法包含为隐藏字段,就像Rails 2 JavaScript一样.另一个选择是让GET版本带你到一个中间页面,而中间页面又有表格/按钮.
新方法的好处是它不引人注目.用于更改HTTP谓词的JavaScript存在于外部文件中,并使用这些data-属性来确定应将哪些元素附加到其中.
小智 21
而不是使用link_to方法 - 这将要求您使用JavaScript来确保HTTP方法DELETE- 使用该button_to方法,该方法将创建一个带有隐藏输入元素的表单,该表单告诉Rails将HTTP方法视为DELETE而不是POST.如有必要,您可以使用CSS来设置表单中的按钮样式,使其看起来像一个链接.
| 归档时间: |
|
| 查看次数: |
18866 次 |
| 最近记录: |