gpt4 book ai didi

javascript - 如何使 javascript 文件可以访问 ruby​​ 变量?

转载 作者:行者123 更新时间:2023-11-28 12:00:45 44 4
gpt4 key购买 nike

我有两个变量,<%= @user.lat %><%= @user.lng %>

这些变量会根据登录我的系统的用户而变化 - 这是用户在注册我的应用程序时提供的地址。

scripts.js我一直在尝试定义它们,以便我的 Google map 可以显示用户的纬度和经度。

但是

function initialize_google_maps() {
var currentlatlng = new google.maps.LatLng(<%= @user.lat %>, <%= @user.lng %>);

etc 等不起作用,因为它无法理解我的 ruby​​ 代码。

我尝试在 script.js 文件的顶部定义它们,例如:

var map_latitude = "<%= @user.lat %>";
var map_longitude = "<%= @user.lng %>";

然后使用:

  function initialize_google_maps() {
var currentlatlng = new google.maps.LatLng(map_latitude, map_longitude);

但我了解到你不能将 ruby​​ 放入 js 文件中。我确实尝试将其重命名为scripts.js.erb,但这也不起作用。

那么,我该如何定义 <%= @user.lat %><%= @user.lng %>所以它们会被我的scripts.js 文件识别,并显示在我的 map 中?我确实尝试过这个答案here ,创建了一个部分,但它对我不起作用。也许我做错了。

请注意:我不能简单地将代码和映射函数放在 html.erb 文件中的脚本标记之间,因为我正在使用一些 ajax,并且事情会变得困惑 - ruby​​ 变量需要被 js 识别文件。谢谢。

最佳答案

可以在 JavaScript 文件中使用 Ruby,但不建议这样做,因此我不会解释如何操作。

要回答您的问题,您只需将变量放入 HTML 属性中即可:

<div id="foo" data-lat="<%= @user.lat %>">Books are coming soon!</div>

然后用 JavaScript 提取它:

var lat = $("#foo").data("lat");

关于javascript - 如何使 javascript 文件可以访问 ruby​​ 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430844/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com