问题标签 [opalrb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
118 浏览

opalrb - 我应该如何迁移到 opal 0.7.0.beta

我尝试升级以使用 Opal 0.7.0.beta。我想编译为静态应用程序并按照http://opalrb.org/docs/static_applications/中的步骤操作

我的 Rakefile 如下所示。问题:

  1. 我如何需要返工 :build 任务以摆脱弃用消息。我试过了。使用 Opal::Server 而不是 Opal::Environment 但它不起作用。

  2. 我得到`蛋白石已经加载。加载两次可能会导致问题,请修复您的设置。``

  3. 我进入undefined is not a function生成的 javascriptOpal.mark_as_loaded(Opal.normalize_loadable_path("corelib/runtime"));

感谢 Opal 并感谢您的任何建议。

0 投票
1 回答
285 浏览

javascript - Opal 在 Chrome 中加载但不在 Node 中(ReferenceError:Opal​​ 未定义)

例如,如果我只运行以下命令:

node opal.min.js

结果是: /home/benjamin/workspace/1/opal.min.js:1 klass){return obj.toString()}else{return obj.$inspect()}})}(self)})(Opal);(fun ^ ReferenceError: Opal is not defined at Object.<anonymous> (/home/benjamin/workspace/1/opal.min.js:1:15264) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3

但是,如果我在 Chrome 的页面中加载蛋白石并编译“hello world”脚本,它运行得很好,没有任何抱怨。我无法弄清楚为什么会这样。我真的很希望能够使用 Node.js 运行这些脚本。

0 投票
1 回答
288 浏览

javascript - 无法将 Ruby 数学库与 Opal 一起使用

有没有办法在 Opal 中使用 ruby​​ Math 库?

在我的 ruby​​ 方法中Uncaught NameError: uninitialized constant Object::Math使用时收到以下错误消息。Math::PI

红宝石代码:

Opal 生成的 javascript :

谢谢 ;)

0 投票
1 回答
36 浏览

rspec - 在规范中引用蛋白石模板

我在示例 Rails 应用程序中运行了一些工作蛋白石代码,我正在尝试围绕它编写一些 rspec 测试。

一切都设置好了,我可以做一些基本的事情,但是在我的代码中我使用模板,我似乎无法设置加载路径来查找/编译模板。

所以我有例如

在 some_lib.js.rb 我有

打印“Template.paths:”

即没有模板。

从 rails 应用程序中调用相同的代码时可以正常工作,所以我假设我需要做一些事情,以便模板编译器在测试环境中工作?

注意我已经使用 Opal.append_path 设置了加载路径,它似乎可以正常工作,因为我实际上可以需要 .js.rb 文件,而不是同一目录中的模板。

0 投票
1 回答
149 浏览

google-chrome - 调试 Opalrb 时如何利用 Sourcemap

Opal 正在生成源地图。我可以在 chrome 中启用 JavaScript 源映射,设置断点,甚至在调试器中停止。但它仍然没有太大的实际用途。

  1. 我无法调查局部变量。即使我尝试在 chrome 的控制台中评估相同的内容,它们都显示为 Nil。
  2. 我希望能够在 ruby​​ 源和生成的 Javascript 之间切换(这并不难理解)。

到目前为止,我最成功的方法是在生成的 Javascript 中搜索重要的标识符,而根本不使用源映射。

欢迎任何提示。

0 投票
1 回答
96 浏览

ruby - 如何将 jquery 库与 opal-jquery 一起使用?

所以我使用opal,opal-jqueryjquery.terminal. 后者向 jquery 添加了一个名为terminal().

不过Element好像没有那个方法?

0 投票
1 回答
58 浏览

javascript - Opal:如何在帧之间创建单例全局?

我正在使用Opal.rb构建一个 javascript 应用程序。应用程序由几个负责应用程序不同部分的框架组成。我遇到的问题是我在 x_frame 中实例化了需要从 y_frame 访问的对象。我现在这样做的方法是写:

window.top.frames.x_frame.Opal.MyClass.$do_something()

但这变得丑陋。有什么办法可以定义一个所有帧都可以全局访问的单例吗?

0 投票
1 回答
136 浏览

opalrb - 使用 Opal-jQuery 的事件完成回调

我正在开发一个使用 opal-jquery 包装器连续处理多个 jQuery 事件的项目。jQuery 具有非常有效的回调功能,我想知道是否可以在纯 ruby​​ 中使用 Opal 执行此操作。

0 投票
1 回答
223 浏览

reactjs - 在测试之间重置 react.js

我正在使用 React.rb(一个 opal-ruby 绑定到 react.js)和 Opal-rspec 进行测试。

似乎我需要在测试之间重置 react 的内部结构,因为在某些测试中我遇到了可怕的“无法读取未定义的属性 'firstChild'”错误。

如果我将“失败”测试移动到第一个测试,那么错误就会消失(但可以在以后的测试中出现。)

React.rb 没有被加载两次,我已经确定了几种方法,包括将 console.log 放入 react 源文件的第一行。

SOOO 看来我需要一种方法来完全清除测试之间的反应状态。有什么办法吗?

0 投票
1 回答
136 浏览

ruby - 如何在 Volt 中做一个 jQuery toggleClass?

我正在玩Volt,目前正在尝试在我的 Volt 应用程序中为侧边栏做一个简单的 toggleClass(没有运气)。这是一个代码示例。

应用程序/main/views/main.html

应用程序/main/assets/js/sidebar.js

当点击div.sidebar-toggler一个toggled类时应该添加到div#wrapper......它没有,也许有另一种方法可以用 Volt 做到这一点。

上面的代码不起作用。什么是好的伏特方式来做到这一点?