0

我想 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}),我不能从那个文件中引用任何东西。

有什么帮助吗?

4

1 回答 1

1

您应该使用require "foo"Opal 或Opal.require("foo")JavaScript。如果load "foo"需要该行为,则应注意该行为Opal.load("foo")也存在。

另一种方法是在服务器上编译文件并将:requirable标志设置为,false但这有点困难,除非你手动编译。有关更多信息,请参阅API 文档

Opal.modules["foo"](Opal)应避免直接调用,因为它不会正确更新$LOADED_FEATURES,并且通常将来会发生变化。

于 2015-10-19T21:17:08.110 回答