首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用.js.erb文件而不是.html.erb

调用.js.erb文件而不是.html.erb
EN

Stack Overflow用户
提问于 2014-04-24 08:25:38
回答 2查看 879关注 0票数 0

我有一个谷歌地图的Rails应用程序。我想用一个.js.erb文件用标记填充它,这样我就可以访问javascript中的ruby变量了。我不想用龙珠。

有没有办法让操作调用.js.erb文件而不是.html.erb文件?

一种解决方法是加载.html.erb,然后进行自动ajax调用来加载.js.erb,但我正在寻找更好的解决方案。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-24 08:53:08

控制器确实不是正确的方式,因为它的工作是响应请求。如果一个请求进入并希望返回HTML,Rails将返回HTML。如果是JS请求,它会将JS发回。

正确的方法是使用HTML加载页面,然后从页面执行AJAX调用。您甚至可以将其发送到相同的操作,Rails将使用适当的js.erb模板进行响应。如果你想给它特殊的指令,也许如果你想以一种特定的方式呈现你的JSON,你可以用respond_to或者JBuilder gem来实现。

编辑:上面的代码是基于这样的假设编写的:您通过一个普通的HTML请求加载页面,并且您希望它同时执行HTML和JS。如果您已经在页面上,并且希望通过链接、按钮或表单执行AJAX调用,而不想呈现HTML,则可以通过向任何form_forform_tagbutton_tolink_to标记添加remote: true来实现。

票数 0
EN

Stack Overflow用户

发布于 2014-04-26 02:16:25

如果您希望避免第二次调用,并且不希望您的控制器需要使用JSON进行响应,那么您可以将正在查找的数据放入视图中的HTML5数据属性中。它们是专门为JS提供信息而存在的。您只需将其值设置为包含您的标记的数组,然后让脚本运行该数组的每个元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23257642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档