gpt4 book ai didi

javascript - 如何在我的 sprockets 预处理 js 文件(不是 View )中获取 escape_javascript 和其他助手?

转载 作者:可可西里 更新时间:2023-11-01 01:28:56 25 4
gpt4 key购买 nike

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

我想使用 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" ) ) )%>"
};

关于javascript - 如何在我的 sprockets 预处理 js 文件(不是 View )中获取 escape_javascript 和其他助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838550/

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