我想在我的rails 3 app中使用Ujs。 任何人都能解释一下轨道中突兀和不引人注目的javascripts吗? 为什么版本之前的rails 3不支持ujs?
答案 0 :(得分: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代码。
UJS也常用于使用:remote => "true"
或link_to_remote
拨打远程(AJAX)电话。
有关此处的更多信息:AJAX on Rails
基本上UJS意味着包含在Rails中的javascript助手(如确认和AJAX等)与视图代码(HTML)分开。
UJS帮助程序也可以轻松切换,例如,如果您更喜欢使用Prototype,可以在保持帮助程序功能的同时轻松地从jQuery切换。
为什么Rails旧版本不支持UJS,因为它当时并没有内置,所以它是用内联JS完成的。