问题标签 [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.
opalrb - 我应该如何迁移到 opal 0.7.0.beta
我尝试升级以使用 Opal 0.7.0.beta。我想编译为静态应用程序并按照http://opalrb.org/docs/static_applications/中的步骤操作
我的 Rakefile 如下所示。问题:
我如何需要返工 :build 任务以摆脱弃用消息。我试过了。使用 Opal::Server 而不是 Opal::Environment 但它不起作用。
我得到`蛋白石已经加载。加载两次可能会导致问题,请修复您的设置。``
我进入
undefined is not a function
生成的 javascriptOpal.mark_as_loaded(Opal.normalize_loadable_path("corelib/runtime"));
感谢 Opal 并感谢您的任何建议。
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 运行这些脚本。
javascript - 无法将 Ruby 数学库与 Opal 一起使用
有没有办法在 Opal 中使用 ruby Math 库?
在我的 ruby 方法中Uncaught NameError: uninitialized constant Object::Math
使用时收到以下错误消息。Math::PI
红宝石代码:
Opal 生成的 javascript :
谢谢 ;)
rspec - 在规范中引用蛋白石模板
我在示例 Rails 应用程序中运行了一些工作蛋白石代码,我正在尝试围绕它编写一些 rspec 测试。
一切都设置好了,我可以做一些基本的事情,但是在我的代码中我使用模板,我似乎无法设置加载路径来查找/编译模板。
所以我有例如
在 some_lib.js.rb 我有
打印“Template.paths:”
即没有模板。
从 rails 应用程序中调用相同的代码时可以正常工作,所以我假设我需要做一些事情,以便模板编译器在测试环境中工作?
注意我已经使用 Opal.append_path 设置了加载路径,它似乎可以正常工作,因为我实际上可以需要 .js.rb 文件,而不是同一目录中的模板。
google-chrome - 调试 Opalrb 时如何利用 Sourcemap
Opal 正在生成源地图。我可以在 chrome 中启用 JavaScript 源映射,设置断点,甚至在调试器中停止。但它仍然没有太大的实际用途。
- 我无法调查局部变量。即使我尝试在 chrome 的控制台中评估相同的内容,它们都显示为 Nil。
- 我希望能够在 ruby 源和生成的 Javascript 之间切换(这并不难理解)。
到目前为止,我最成功的方法是在生成的 Javascript 中搜索重要的标识符,而根本不使用源映射。
欢迎任何提示。
ruby - 如何将 jquery 库与 opal-jquery 一起使用?
所以我使用opal
,opal-jquery
和jquery.terminal
. 后者向 jquery 添加了一个名为terminal()
.
不过Element
好像没有那个方法?
javascript - Opal:如何在帧之间创建单例全局?
我正在使用Opal.rb构建一个 javascript 应用程序。应用程序由几个负责应用程序不同部分的框架组成。我遇到的问题是我在 x_frame 中实例化了需要从 y_frame 访问的对象。我现在这样做的方法是写:
window.top.frames.x_frame.Opal.MyClass.$do_something()
但这变得丑陋。有什么办法可以定义一个所有帧都可以全局访问的单例吗?
opalrb - 使用 Opal-jQuery 的事件完成回调
我正在开发一个使用 opal-jquery 包装器连续处理多个 jQuery 事件的项目。jQuery 具有非常有效的回调功能,我想知道是否可以在纯 ruby 中使用 Opal 执行此操作。
reactjs - 在测试之间重置 react.js
我正在使用 React.rb(一个 opal-ruby 绑定到 react.js)和 Opal-rspec 进行测试。
似乎我需要在测试之间重置 react 的内部结构,因为在某些测试中我遇到了可怕的“无法读取未定义的属性 'firstChild'”错误。
如果我将“失败”测试移动到第一个测试,那么错误就会消失(但可以在以后的测试中出现。)
React.rb 没有被加载两次,我已经确定了几种方法,包括将 console.log 放入 react 源文件的第一行。
SOOO 看来我需要一种方法来完全清除测试之间的反应状态。有什么办法吗?
ruby - 如何在 Volt 中做一个 jQuery toggleClass?
我正在玩Volt,目前正在尝试在我的 Volt 应用程序中为侧边栏做一个简单的 toggleClass(没有运气)。这是一个代码示例。
应用程序/main/views/main.html
应用程序/main/assets/js/sidebar.js
当点击div.sidebar-toggler
一个toggled
类时应该添加到div#wrapper
......它没有,也许有另一种方法可以用 Volt 做到这一点。
上面的代码不起作用。什么是好的伏特方式来做到这一点?