gpt4 book ai didi

ruby - 什么是 Unobtrusive JavaScript in rails?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:20 26 4
gpt4 key购买 nike

我想在我的 Rails 3 应用程序中使用 Ujs。任何人都可以向我解释一下 Rails 中的侵入式和非侵入式 JavaScript 吗?为什么 Rails 3 之前的版本不支持 ujs?

最佳答案

Rails 从早期版本开始就有 javascript 助手。

与 Rails 3 不同的是,现在它不显眼,不显眼意味着功能与内容分离。

例如以下内容:

<%= link_to "Delete", resource_path(@resource), :method => "delete", :confirm => "Are you sure?" %>

会渲染 pre 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 是在 View 中没有内联代码的情况下处理的,并通过“数据”属性传递,并在后台与应用程序中的其他默认 JS 一起处理,这些默认 JS 获取此数据属性并运行相应的JS代码。

UJS 还常用于使用 :remote => "true"link_to_remote 进行远程 (AJAX) 调用。

这里有更多信息:AJAX on Rails


基本上,UJS 意味着 Rails 中包含的 javascript 帮助程序(例如确认和 AJAX 等)与 View 代码 (HTML) 分离。

UJS 助手也可以轻松切换,例如,如果您更喜欢使用 Prototype,您可以轻松地从 jQuery 切换,同时保留助手功能。

为什么旧版本的 Rails 不支持 UJS,是因为它当时还没有内置,所以它是用内联 JS 完成的。

关于ruby - 什么是 Unobtrusive JavaScript in rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com