我想在我的 rails 3 应用程序中使用 Ujs。任何人都可以向我解释一下 Rails 中突兀和不突兀的 javascripts 吗?为什么rails 3之前的版本不支持ujs?
问问题
440 次
1 回答
3
Rails 从早期版本开始就有 javascript 助手。
自 Rails 3 以来的不同之处在于它现在不显眼,不显眼意味着功能与内容分离。
例如以下:
<%= link_to "Delete", resource_path(@resource), :method => "delete", :confirm => "Are you sure?" %>
将渲染前 Rails 3
<a href="/resource/1" onclick="//lots and lots of inline javascript code here">Delete</a>
使用 Rails 3 UJS
<a href="/resource/1" data-method="delete" data-confirm="Are you sure?">Delete</a>
不同之处在于,不显眼的 javascript 是在视图中没有内联代码的情况下处理的,并通过“数据”属性传递,并在后台与您的应用程序中的其他默认 JS 一起处理,该 JS 获取此数据属性并运行相应的 JS 代码.
UJS 也常用于使用:remote => "true"
or进行远程 (AJAX) 调用link_to_remote
。
更多信息:AJAX on Rails
基本上,UJS 意味着 Rails 中包含的 javascript 帮助程序(例如确认和 AJAX 等)与视图代码 (HTML) 分离。
UJS 助手也可以轻松切换,例如,如果您更喜欢使用 Prototype,您可以轻松地从 jQuery 切换,同时保留助手功能。
为什么 Rails 旧版本不支持 UJS,是因为它当时没有内置,所以它是用内联 JS 完成的。
于 2013-01-29T07:57:50.913 回答