问题标签 [hotwire]

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 回答
145 浏览

ruby-on-rails - 如何禁用 Rails 应用程序中所有表单的 Hotwire / Turbo(Turbolinks 替代品)?

在 Rails 7 中,Turbolinks 被 Hotwire / Turbo 取代。这会修补 Web 链接,使它们成为 AJAX 样式的请求,就像 Turbolinks 所做的那样,而且还修补了表单。总的来说,我们发现这破坏了我们的应用程序。

  • 已经附加了某种 JS 行为的表单会发生冲突。
  • 标准 Rails 错误处理习惯用法 - “设置flashrender :new/ render :edit” - 令人惊讶地打破;必须添加status: :unprocessable_entity和交叉手指。
  • 如果处理表单提交的控制器重定向到一个包含补丁锚 ( ...#foo) 的 URL,Turbo 会删除它。

最后,data: {turbo: false}将代码分散到整个代码库中才有意义。更糟糕的是,我们使用的是 SimpleForm,所以这变得更加麻烦html: {data: {turbo: false}}

有没有办法 _globally为表单禁用 Turbo (理想情况下,所有表单,无论其来源如何 - 请让<form>标签和其中的所有内容完全独立)但保持其其余行为不变?

0 投票
1 回答
153 浏览

ruby-on-rails-7 - rails turbo_stream 不适用于 rails 7 应用程序

我正在尝试提交表单并在 rails 7.0 应用程序上返回 turbo_stream。在我的表格中,我有以下内容。

在我的控制器中,我有以下内容

这给了我一个错误ActionController::UnknownFormat

尽管我在表单中指定了格式,但似乎格式是html我提交表单时的格式。

我可以看到这是从哪里来的,在我的请求标头上,我有以下内容

我需要在请求标头上添加text/vnd.turbo-stream.html类型,我该怎么做?

0 投票
0 回答
40 浏览

ruby-on-rails - Rails Turbo 不会触发 turbo:load 事件

turbo:load 事件在 turbo 访问后不会被触发(正如文档所说的那样)。它在初始整页加载后按预期工作。我可以捕捉到“turbo:before-fetch-response”事件,但我对 turbo:load、:render、:frame-render、:frame-load 没有运气。

我的 turbo_stream 请求采用格式 TURBO_STREAM 来销毁附件。控制器响应为

我正在返回两个涡轮流,其更新和删除操作按预期工作:

(注意:这是另一篇文章的一个亮点。在我的情况下提出的解决方案不起作用,因为完整属性仅适用于HTML img 元素。)(我正在使用@hotwired/turbo@^7.1.0,@在 Rails 7.0.1 中的 hotwired/turbo-rails@^7.1.1)

0 投票
1 回答
21 浏览

ruby-on-rails - 使用 Turbo Frames 在 Rails 中处理 HTTP 404 响应的最佳实践?

我正在思考 Turbo Streams 的工作原理,主要是作为一个思想实验。在构建一个简单的玩具应用程序后,我了解了基础知识。使用少量 Turbo Frames 可以完成很多事情,这非常强大。

能够用 Turbo Frame 响应并在 DOM 中替换正确的内容是很有趣的。但是,我注意到如果 Turbo Frame 中的链接响应 HTTP 404,它只会显示在错误控制台中。(可见页面上没有任何变化。)处理此类错误的最佳实践是什么?向用户提示链接断开的简单选项是什么?

0 投票
1 回答
42 浏览

ruby-on-rails - 无法解决 Rails 7 上的“@hotwired/stimulus-loading”Heroku 部署

帮助.. 当我在我的 rails 应用程序上部署到 Heroku 时,我在终端上收到此错误。顺便说一句,我在 Ruby 3.0.3 上使用 Rails 7.0.1

我的gemfile上有这个

我已经试过了

在我的 App/Javascipt/Controllers/application.js

但是每次我在heroku上部署它时仍然遇到相同的错误,该应用程序在本地运行良好。

0 投票
0 回答
18 浏览

javascript - 如何在涡轮框架中渲染 Mermaidjs 图?

我有主页,我想在单独的框架中显示美人鱼图:

我有一个带有图表代码的框架(我简化了它):

但是图表没有渲染,我只在页面上看到了美人鱼代码。