如何在链轮预处理的 js 文件(不是视图)中获取 escape_javascript 和其他帮助程序?

2024-04-03

我正在使用 Rails 3.1 和链轮的东西。

我想使用 ERB 预处理 js 文件,然后使用 javascript_include_tag 包含该文件。它是从代码生成的,因此我使用 ERB 对其进行预处理,但我无法从 ActionView::Helpers::JavaScriptHelper 获取 escape_javascript 等帮助器

假设我的文件名为dynamic.js.erb,它包含

obj = {
 name: "test",
 tag: "<%= escape_javascript( image_tag( "logo.png" ) )%>"
};

如何阻止它产生错误:

throw Error("NoMethodError: undefined method `escape_javascript' for #<#<Class:0x1067da940>:0x116b2be18>
(in /Users/me/site/app/assets/javascripts/dynamic.js.erb)")

当我访问本地服务器并询问时/assets/dynamic.js


您可以将 Rails JS 帮助程序包含到您自己的类中。

class Helper
  include ActionView::Helpers::JavaScriptHelper

  def self.escape_js( text )
    @instance ||= self.new
    return @instance.escape_javascript( text )
  end
end

然后在您的 ERB 文件中使用它:

obj = {
 name: "test",
 tag: "<%= Helper.escape_js( image_tag( "logo.png" ) ) )%>"
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在链轮预处理的 js 文件(不是视图)中获取 escape_javascript 和其他帮助程序? 的相关文章

随机推荐