【问题标题】:updating rails image_path dynamically动态更新 rails image_path
【发布时间】:2018-03-19 01:19:27
【问题描述】:

我正在使用 rails js helper image_path 来使用 javascript 更新图像源。

新的 img src 路径的实际字符串存在于变量中,我需要将其注入到下面的 image_path 字符串中,这给我带来了问题。

这是我的工作:

对象:

var bike = { image: "bikes/diamondback/diamondback-29-ht.png"}

图片路径:

$('.ga-recommended-bike').attr('src', "<%= image_path 'bikes/diamondback/diamondback-29-ht.png' %>")

我一直在尝试做这样的事情来将 url 注入图像路径:

$('.ga-recommended-bike').attr('src', "<%= image_path `${bike.image}` %>")

也试过非es6的方式

$('.ga-recommended-bike').attr('src', "<%= image_path " + bike.image + " %>")

我认为问题在于 rails 和 js 代码的混合。

有谁知道使用 Rails 和 javascript 解决这个问题的好方法吗?

【问题讨论】:

    标签: javascript ruby-on-rails


    【解决方案1】:

    您是否有理由需要 JS 中的 ruby​​ 代码?那可能行不通。但是,如果你必须从 dom 中提取数据以通过 js 呈现数据,为什么不在视图中使用 ruby​​ 代码,比如数据属性并在 javascript 中使用它。

    <div id="my-data-thing", data-image-path="<%= image_path 'bikes/diamondback/diamondback-29-ht.png' %> ></div>
    

    【讨论】:

    • 我的问题不在于从 dom 中拉出。我正在尝试使用 javascript 更新图像 src,而 rails 的资产管道不能很好地处理这种类型的任务。据我所知,我必须使用 javascript 助手。否则我可以在不使用 image_path 帮助器的情况下更新 src。如果有其他方法可以做到这一点,我愿意接受想法
    【解决方案2】:

    不幸的是,我无法让字符串注入工作,但这是我如何找到一个可行的解决方案(仍然无法回答这个问题):

    我在对象变量中包含了完整的图像路径 url。该文件所在的文件必须是 .js.erb

      var bikes = {
        diamondbackOverdrive29: {
          image: "<%= image_path 'bikes/diamondback/diamondback-29-ht.png' %>",
          price: "",
          make: "",
          model: "",
          features: []
        }
      }
    

    然后我就可以调用bikes.diamondbackOverdrive29.image

    所以我将不得不为每个项目声明完整的图像路径,但现在看起来还可以,而且仍然很干净。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2013-10-09
      • 1970-01-01
      相关资源
      最近更新 更多