亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號