javascript - rails : rendering html and js in one request

标签 javascript ruby-on-rails

当用户访问我的网站时,我想同时呈现 index.html.haml 和 index.js.haml。 (我试图让我的 JS 脱离 View 。)

目前,它只呈现 html。添加一个包含 html 和 js 的 respond_to block 当然只会呈现 html。

我该怎么做?有没有更好的办法?我不想将 JS 包含在/assets/js 中,因为 ruby​​ 在 JS 中执行。

最佳答案

一个 Rails Controller 操作一次只能响应一个 HTTP 请求,即使它可以响应多个 JS 从 HTML 请求初始请求以任何方式发出(因此它是一个单独的请求)。

如果为了清晰起见,您希望将 Javascript 保存在另一个文件中,您可以创建一个部分文件并以这种方式加载它。

在用@my_var 传递给部分(./views/mycontroller/my_action.html.erb)响应 Controller Action 的 View 中:

<%= render 'my_action_js', :my_var => @my_var %>

和部分(./views/mycontroller/_my_action_js.html.erb)

<script type="text/javascript">
    alert(<%= my_var %>);
</script>

关于javascript - rails : rendering html and js in one request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591138/

相关文章:

javascript - 如何从 Id 中获取子字符串?

javascript - 为什么在定义 DOMContentLoaded 事件监听器的 Zepto 库中将 $ 作为参数传递给 callback($) ?

javascript - IDE 中 jsx 代码的流 'unexpected token <'

ruby-on-rails - rails : How to to download a file from a http and save it into database

javascript - 通过ajax发送base64图像数据到cfc

ruby-on-rails - 简单表格 : How can I create a custom wrapper that does not wrap the input and create a label?

ruby-on-rails - 如何在命名空间内移动邮件程序

ruby-on-rails - 脚本头过早结束 : media ( Issue related to :rails app deployment+passenger+ubuntu+apache)

ruby-on-rails - 如何在不更改原始类的情况下替换 belongs_to 关联

javascript - 如何使用 Google Maps API V3 制作显示边界的简单邮政编码 map ?