为了账号安全,请及时绑定邮箱和手机立即绑定

Rails 6 包上下文中参数的 javascript 语法

Rails 6 包上下文中参数的 javascript 语法

德玛西亚99 2023-09-21 17:09:01
操作:一种 JavaScript 操作,尝试根据两个参数(用户输入参数和发布页面参数)检索数据。而在过去,类似以下的方法会起作用:<%= javascript_tag do %> chart.data = data_<%=j params[:nation_id] %>; <% end %>现在,随着 javascript 被“打包”,类似语法的编译<%=j params[:nation_id] %>不起作用并返回:/search.json?nation_id=%22%3C%=j%20params[:nation_id]%20%%3E%22&q=mi 按如下方式修改packs/muni.js文件,也不会为搜索功能生成正确的 url  var options = {    url: function(phrase) {      return '/search.json?nation_id="#{params[:nation_id]}"&q=' + phrase;    },    getValue: "name",  };返回/search.json?nation_id=%22该页面设置为 /new?top%5Bnation_id%5D=1&commit=Setjavascript包需要怎么写?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

Javascript 包不会为每个请求/访问者呈现 - 重点是每次部署时都会打包一次,并且对于所有包都是相同的(除非您有多个包、动态模块加载和其他高级技术,但代码仍然没有更改)根据要求)。事实上,资产管道的旧方法在这方面非常相似。

不要尝试在包内使用 ruby,而是想办法将参数传递给 js 代码。

例如,您可以通过添加一些 html 标签并从 javascript 查询它来传递它: 在视图中:

<meta name="nation_id" content="<%= params[:nation_id] %>" />

在js中:

nation_id = document.querySelector('meta[name="nation_id"]').content;
return `/search.json?nation_id=${nation_id}&q=${phrase}`;

附言。你也可能需要逃避你phraseencodeURIComponent


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 52 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信