问题标签 [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 投票
1 回答
412 浏览

javascript - 从 JavaScript 运行 Ruby 库

我找到了一个用 Ruby 编写的甜蜜库,我想在我的 JS 应用程序中使用它。该库是一个正则表达式 -> NFA 转换库,非常适合我的需求。

有没有办法调用这个 ruby​​ 库并在 JavaScript 中处理输出?

0 投票
1 回答
365 浏览

opalrb - 未捕获的 NoMethodError:未定义的方法 `render' for #

我想在 Opal 文件中使用此代码安装我的组件:

Element['#wizard_param_grid_editor'].render do
   ZGrid(rows: @work_spaces)
End

我得到了错误

我想在 Opal 文件中使用此代码安装我的组件:

我得到了错误

Uncaught NoMethodError: undefined method render' for #]>


0 投票
1 回答
70 浏览

opalrb - opal react.rb 作为参数传入 proc 以用作回调

我似乎不记得将proc作为react.rb中组件的参数传递,有人可以提醒我吗?

对不起,如果我的问题措辞不好,我有点累了。

0 投票
1 回答
4294 浏览

jquery - 如何使用 Python 动态修改 CSS?

我正在创建一个基于 Flask 的网络应用程序。我需要动态修改元素的 CSS。

更具体地说,我有一个要从 Python 读取的文件。根据我从文件中读取的内容,我想修改元素的 CSS。只是给你一个想法,

我已经尝试将 Opal 与 Ruby 一起使用,但是我无法设置“opal-jquery”的东西。感谢您对任何一条路径的任何指导。

0 投票
1 回答
54 浏览

ruby-on-rails - 如何告诉 Rails 不要预渲染组件?

使用 React.rb 时,如何防止 Rails 预渲染组件?

0 投票
1 回答
219 浏览

ruby-on-rails - 如何将基于 JavaScript 或 JSX 的组件导入 React.rb 以便在 ruby​​ 中访问?

使用为 React-Bootstrap 和 react.rb 给出的示例完美地工作,但我试图让一个名为 React-TimeAgo 的 NPN 组件工作,我迷路了。

这就是我所做的:

在 index.js 中(让 Webpack 将其导入到 webpack 包中):

在实际的 component.rb 我有这个:

然后引用 Bootstrap 组件可以完美地工作:

但我无法从 TimeAgo 包装器中得到任何东西:

我究竟做错了什么?所有帮助表示赞赏!

0 投票
2 回答
125 浏览

opalrb - 是否可以将 gatsby 静态站点生成器与 reactrb 一起使用?

所以,我基本上对整个 npm/react.js(更不用说 react.rb)生态系统还是很陌生,我想知道是否可以将 reactrb 与 gatsby 静态站点生成器一起使用。

我一直在尝试通过 opal-webpack 获得 opal/reactrb 支持,但遇到了一些问题(有关一些背景故事,请参阅此问题https://github.com/cj/opal-webpack/issues/36)。具体来说,我遇到困难的地方是试图让它与 bundler 一起玩得很好。

将 reactrb 组件与 gatsby 结合起来是否可行?我希望答案是肯定的。

0 投票
0 回答
76 浏览

javascript - 在实际服务器上而不是本地测试服务器上加载 Opal Javascript 时,Rails 生成错误

我在 Rails 服务器上使用 Opal 将 Ruby 转换为 Javascript,并且在开发和生产模式下,一切都在我本地机器上的测试服务器上完美运行。但是,当文件上传到实际服务器时,ActionView::Template::Error会生成一条 with no 消息。它指示的行是加载 Javascript (Opal) 的行,实际上,当删除该行时,错误就会消失(尽管这显然不是解决方案)。服务器上的所有文件都与本地机器上的文件相同,除了bin文件夹和文件。dblogtmpGemfile.lock

我认为这可能是一个缓存问题,因为最初只有已更改的文件不起作用,但我不能确定,因为现在所有文件都已损坏。

我试过删除tmp文件夹,使用gem pristine --all和使用gem update,但这些都没有帮助。

我一直在寻找解决方案,但没有错误消息,我不知道从哪里开始。

此外,该服务器之前确实可以工作,但最近的更改(将脚本转换为 Opal)破坏了它。

这是错误日志中许多类似的错误消息之一:

config/production.rb的如下:

编辑:

我现在可以确认它是 Opal。再次使用 CoffeeScript 可以防止问题发生。

另外,这个问题现在出现在我的本地机器上,我认为这是因为编译文件的缓存是在开发模式下生成的,而这些缓存是在生产模式下使用的。由于我没有在服务器上以开发模式进行测试,所以我没有意识到。

设置config.consider_all_requests_local = true解决了这个问题,它在被删除后继续工作,但一旦任何相关的 Javascript 资产被修改,它就会停止工作。

也许我错了,但config.assets.compile = true如果它们没有预编译,不应该让服务器编译资产?

编辑2:

它也适用于预编译资产,但我不明白为什么这对于config.assets.compile = true选项集是必要的。

0 投票
1 回答
69 浏览

ruby - 如何用 Opal 转译 Slim?

Slim是一种模板语言,我想在客户端 Web 应用程序中使用它(它应该能够离线工作)。

我想知道我是否可以使用 Opal 来转换它。如果是这样,那该怎么做?

如果目前不可能,您能否建议对 Slim 进行哪些修改以使其与 Opal 兼容?

0 投票
1 回答
53 浏览

javascript - Opal 中带重音的 UTF8 字符串

我正在尝试在 Opal 中使用带有重音符号的 UTF8 字符串。

红宝石代码:

编译后的 JavaScript:

#test 和浏览器控制台显示:

法兰西

如果我手动编辑已编译的 JavaScript,将"Fran\xC3\xA7ais"替换为"Français"

#test 和浏览器控制台显示:

法语

我究竟做错了什么?

有没有办法告诉 Opal 将未触及的 UTF8 字符串传递给 JavaScript?

谢谢