【问题标题】:Pass parameters from js.erb file to js file将参数从 js.erb 文件传递​​到 js 文件
【发布时间】:2015-11-19 09:11:22
【问题描述】:

我已经从/assets/js/myfile.js 发起了ajax call,它击中了控制器,并且在我的控制器操作中我已经

@myVar = ModelClass.create(params) respond_to do |format| format.js format.html end 这样我就可以使用我的myaction.js.erb 文件功能。我有如下 $("#box_div").append('<%= escape_javascript(render :partial => "box.html.erb") %>');

要记住的是,我可以在js.erb 文件中访问@myVar 变量并显示数据良好。在这一点之后 partial view 被渲染,所有的部分标签/值都被发回 ajax success function 。由于部分渲染,它看起来像一个小的 html 页面。 (一切正常。
现在我想要的是我想传回一个特定的参数,比如 id :

我的 /assets/js/myfile.js

$.post("/conversations", { sender_id: sender_id, recipient_id: recipient_id }, function (data) { **//I want id value sent back from js.erb file here** console.log(data); });

【问题讨论】:

  • 您想将@myVar.id 传递给部分吗?
  • 让我更新一下我的问题
  • @sadaf2605 再次阅读我更新的部分
  • 您可以在 js 中使用隐藏字段值并使用 `` 更新 js.erb 文件中的特定值
  • @VishalJAIN 亲爱的,这对我来说没有意义,你能举个例子吗?

标签: ruby-on-rails ajax ruby-on-rails-4


【解决方案1】:

你可以试试这个方法刚刚创建了粗略的骨架:

myfile.js

myvar_id = $("#myvar").val();
$.post("/conversations", { sender_id: sender_id, recipient_id: recipient_id }, function (data) {
//I want id value sent back from js.erb file here
   console.log(data);
});

Js.erb

$("#box_div").append('<%= escape_javascript(render :partial => "box.html.erb") %>');

_box.html.erb

 <input type="hidden" id="myvar" value="<%= @myvar.id %>">

【讨论】:

  • 嗯,现在很清楚了。看起来还不错。我会检查一下,稍后再告诉你
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多