在 Ruby on Rails 应用程序中,我通过 head 标签中的以下代码设置标题
<title><%= @title %></title>
其中 @title 在每个页面的控制器操作中设置。作为网络应用程序运行,效果很好。但是,如果我将其作为 Turbo-ios 应用程序运行,当我从一个页面导航到另一个页面时,标题不会从起始页面的标题发生变化。除了设置自定义用户代理之外,我没有对标准 Turbo-ios SceneDelegate 类进行任何修改。
“默认情况下,Turbo iOS 将 Visitable 视图控制器的 title 属性设置为页面的标题。”
那么为什么会发生这种情况以及如何解决这个问题?
我还采用了 turbo-ios 演示应用程序,并更改了
basic
中的 turbolinks5
和 Demo.swift
的定义以指向我的应用程序,我可以在页面之间导航,但标题不会更改。
更新
我发现如果我从
<head>
中删除这个标签
<%= turbo_include_tags %>
它解决了问题,并在应用程序的顶部显示了
<
导航链接(返回)。所以看起来问题出在 Turbo Drive 上。我需要使用 Turbo Drive,有解决办法吗?
由于缺乏适当的标题元素更新,Turbo iOS 似乎可能不会更新标题。尝试使用 JavaScript 在每个页面加载时显式设置文档标题。
试试这个:
document.addEventListener("turbo:load", () => {
document.title = '<%= @title %>';
});