【问题标题】:How to interpolate ruby and coffee script variable in `coffee.erb` file?如何在“coffee.erb”文件中插入红宝石和咖啡脚本变量?
【发布时间】:2017-09-08 00:28:40
【问题描述】:

我想在app/assets/javascripts/foo.js.coffee.erb 文件中使用这样的函数。

loadImage = (size="正常") -> imgName = ""

这段代码不起作用,因为咖啡脚本变量没有被插值。 如果我写'<%= asset_path("load-#{size}.gif") %>',那么#{size} 就是被识别的ruby 变量,不用说,它也不起作用。

我怎样才能写出这样的代码?

【问题讨论】:

  • Coffeescript 变量和 ruby​​ 变量不能混合搭配。但是,仅从您的示例来看,您似乎应该能够做到"<%= asset_path('load-normal.gif') %>"
  • 我可以调用这个函数loadImage()loadImage('small')。如果没有办法混合它们中的两个,我会像你写的那样不带变量地写。谢谢!

标签: ruby-on-rails coffeescript


【解决方案1】:

如果有人会搜索相同的内容:

您可以使用coffee_script_tag

loadImage = (size="normal") -> imgName = "<%= asset_path('load-#{coffee_script_tag(size)}.gif') %>"

这应该可行。

它看起来很奇怪,所以我想在你做错事之前你不会需要这个。至少应该记住,erb 表达式将被评估一次,并在页面呈现时使用值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多