首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将代码包含到js.erb视图中?rails 3

如何将代码包含到js.erb视图中?rails 3
EN

Stack Overflow用户
提问于 2012-10-16 10:12:38
回答 2查看 3.4K关注 0票数 2

我有一个网站使用不引人注目的ajax。

简而言之,流动是:

  • 远程链路
  • 由控制器管理的请求
  • js.erb视图将响应发送回浏览器

我希望我的所有js.erb视图都能执行类似的“维护活动”,比如在需要时插入闪存消息,更新url等等。

我怎么才能把这个弄干?理想情况下,每次执行代码时,我都会使用分部,但我找不到如何做到这一点。

我的js.erb文件:

代码语言:javascript
代码运行次数:0
运行
复制
$("#challenge_actions").html("<%= escape_javascript(render partial: "challenges/best_practice_button")%>");
$("#flash_messages").html("<div id='flash_notice'><%= escape_javascript(flash[:notice])%></div>");

如何使用flash_messages提取行并将其自动包含在所有js.erb文件中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 10:29:21

您可以使用js布局,就像html布局一样。

layouts/custom.js.erb

代码语言:javascript
代码运行次数:0
运行
复制
alert("<%=j flash[:notice] %>");
<%= yield %>

controllers/your_controller.rb

代码语言:javascript
代码运行次数:0
运行
复制
def your_action

  flash[:notice] = "hello world"
  @hello = "hello world"

  respond_to do |format|
    format.js { render layout: "custom" }
  end
end

your_action.js.erb

代码语言:javascript
代码运行次数:0
运行
复制
alert("<%= j @hello %>");
票数 3
EN

Stack Overflow用户

发布于 2012-10-16 10:19:57

您也可以在erb中使用部分模板,假设您希望用id“容器”替换div的内容,然后假设您使用的是jquery,您可以这样做。

代码语言:javascript
代码运行次数:0
运行
复制
$('#container').html('<%= escape_javascript(render(:partial => 'mypartial'))%>')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12912320

复制
相关文章

相似问题

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