我想xhr一些蛋白石脚本,并使用那里定义的ruby代码。我试图用$ .getScript来获取它。但对我来说没有成功。
$.ajax({
url: 'assets/foo.js.rb',
success: function(data){
#{ClassInFooJs.new}
},
dataType: "script"
});
此外,脚本被唤醒(以奇怪的方式),我的意思是我可以从控制台调用Opal.modules [“file_i_required”],它将基本返回已编译的代码。
但是内部没有任何东西被唤醒,(没有console.logs,window["foos"] = #{something}
),我无法从该文件中引用任何内容。
任何帮助?
答案 0 :(得分:1)
您应该使用Opal中的require "foo"
或JavaScript中的Opal.require("foo")
。如果需要load "foo"
行为,请注意Opal.load("foo")
也存在。
另一种方法是在:requirable
标志设置为false
的情况下编译服务器上的文件,但除非您手动编译,否则这有点困难。有关详细信息,请参阅API docs。
应该避免直接拨打Opal.modules["foo"](Opal)
,因为它没有正确更新$LOADED_FEATURES
,并且通常可能会在将来发生变化。