问题标签 [turbo]
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.
ruby-on-rails - Hotwire Turbo 不替换涡轮框架,抛出警告:响应没有匹配元素
我开始在 Rails 6 中使用 Hotwire 和 Turbo,并且遇到了 Turbo 无法替换我的涡轮框架的问题。我收到以下错误消息:Response has no matching <turbo-frame id="experiments"> element
。
我通过控制器操作在页面上呈现以下内容:
这会正确地将请求发送到/labs/experiments
,并且当我检查我的网络请求时,会从我的控制器返回以下内容:
但是,响应并未在我的涡轮框架内呈现,而是我收到控制台日志警告:Response has no matching <turbo-frame id="experiments"> element
。
任何帮助表示赞赏:)
ruby-on-rails - 仅当创建或更新具有特定名称值的记录以及特定部分时,如何在 Rails 6(热线)中发送 broadcasts_to?
我有一个带有三个数字整数指标的 Rails 6 View:速度、温度和压力。这些值作为序列化对象存储在 SavedObject 模型中。并在控制器中使用它们各自的实例变量传递给视图。@速度 @温度 @压力
问题
如何为每个序列化对象更新发送单独的广播(使用涡轮热线),以“名称”列(如“设备 2 温度”)为条件,以便每个广播达到自己的部分?(同一视图中有三个不同的局部)
这是模型
这些是列。
记录示例
pascal - 如何解决 Turbo pascal 中的错误:行太长
我有这行代码
但是 Turbo Pascal 给出错误“行长”
所以我试着这样做
但是turbo Pascal给出了错误89:“)”预期。
我在谷歌上搜索了这个,但我一无所获。
那么,如何在 turbo pascal 中解决此代码?
此完整视图代码:
感谢...
c - 如果数字长于 5 位,则确定数字是奇数还是偶数的程序会显示错误的输出
如果我输入的数字超过 5 位,则会显示错误的数字。例如:
我的老师希望我们使用 Turbo C++,但它有时会在我运行程序后冻结,所以我使用了 OnlineGDB(https://www.onlinegdb.com)(语言:C(TurboC))。这是我的代码:
ruby-on-rails - Hotwire 模态表单无法正确渲染 Flatpickr
我有一个模态表单,可以很好地通过热线创建新的详细信息记录。这些字段中有 flatpickr 日期字段和两个 flatpickr 时间字段。如果我有验证错误,表单会在模式内显示错误,但 flatpickr 输入会重置为没有 flatpickr 作为文本字段。当显示验证错误时,如何确保它再次呈现 flatpickr 字段?
控制器创建:
create.turbo_stream.erb
形式:
ruby-on-rails - Rails + Hotwire:Turbo 不会在更改子域的链接上触发
根据文档:
默认情况下,Turbo Drive 仅加载与当前文档具有相同来源(即相同协议、域名和端口)的 URL。对任何其他 URL 的访问会退回到整个页面加载。
但是我想让 Turbo 在子域之间(在同一个基域内)工作。有没有办法做到这一点?
ruby-on-rails - GET 请求在 turbo_frame_tag 中处理为 HTML 而不是 TURBO_STREAM
我开始使用 hotwire/turbo 并设置了一切。Turbo 流工作正常。
在 index.html.erb 中:
在 _task.html.erb 内
当按预期按下销毁按钮时,rails 控制台说:
但是当按下编辑按钮时,rails 控制台会说:
这意味着页面会加载一个新页面,呈现 edit.html.erb 而不仅仅是更新 turbo_frame_tag 中的内容。
检查 DOM 时,edit 和 destroy 链接都在一个 turbo-frame 内:
所以我的问题是,为什么请求被处理为 HTML 而不是 TURBO_STREAM ?
edit.html.erb 看起来像这样:
非常感谢!
ruby-on-rails - 使用带有rails / hotwire / turbo的刺激js在单击事件后更新dom后获取值
我正在使用带有 rails 的stimulus.js。这是一个简单的任务应用程序。每个待办事项都有一个时间估计,我试图在创建、更新或删除任务时更新使用刺激的总和。
待办事项列表的索引页面(如图所示)在顶部有一个内联表单,用于创建新项目。它还具有用于编辑现有项目的内联表单。
在表格上,我有以下内容:
每个待办事项的值都保存在这里:
然后我使用 js 来查找所有这些元素,document.getElementsByClassName("estimate-value")
并最终对这些值求和。
问题是,在按下提交按钮时,<span class="estimate-value">
它不在 dom 中 - 一旦呈现新的待办事项或现有的待办事项已被编辑,它会在几毫秒后加载。
我正在使用 turbo_frames 和 turbo_streams,因此 dom 更改无需重新加载页面即可发生。
有没有办法让点击事件等待dom改变或者有更好的方法来做到这一点?
我还需要处理删除任务的情况。
非常感谢!
ruby-on-rails - 为什么 format.turbo_stream 导致页面跳转到顶部?
我有一张表,它构成了一个非常复杂的时间表。每个 tr 都有一个唯一的 dom id。在呈现日程表时,日程表的时间跨度的持续时间决定了 colspan 属性。例如,一个 9 天的计划跨度将跨越 9 个 tds 并且看起来像一个部分。信息量太大了,真的。
每个 colspan td 都有一个简单的下拉菜单,提供一些快捷方式,例如编辑和删除。整个表被包裹在一个 turbo_frame_tag 中,所以所有的链接(没有 turbo_frame: '_top')都会响应 turbo_stream 格式。删除链接是一个 button_to....来触发销毁操作中的 turbo_stream 响应。
这一切的功能实际上是完美的。如果用户单击给定计划块的下拉列表,单击删除链接... :destroy 操作被命中,记录被销毁,并且该操作响应 turbo_stream...替换整个表行。
问题是......由于某种原因,内容没有在我眼前更新。相反,页面跳回到顶部(没有页面刷新),如果我向下滚动到我所在的位置......内容已通过 TURBO 更新。我记得在老派 JS 中遇到过这样的问题,但为什么 turbo_stream 也会这样做呢?而且,我能做些什么来阻止它吗?
在这样的表中使用 div 不会违反任何标准,但我不禁认为将其转换为由标签等构建的 sudo 表可能会更好。我想知道这样做是否也有帮助上述问题。我不确定为什么会这样,但有时操纵表格似乎会做一些奇怪的事情。
谢谢!