为什么在 Turbo-ios 应用程序中页面标题没有改变<%= @title %>

问题描述 投票:0回答:1

在 Ruby on Rails 应用程序中,我通过 head 标签中的以下代码设置标题

<title><%= @title %></title>

其中 @title 在每个页面的控制器操作中设置。作为网络应用程序运行,效果很好。但是,如果我将其作为 Turbo-ios 应用程序运行,当我从一个页面导航到另一个页面时,标题不会从起始页面的标题发生变化。除了设置自定义用户代理之外,我没有对标准 Turbo-ios SceneDelegate 类进行任何修改。

根据turbo-ios文档

“默认情况下,Turbo iOS 将 Visitable 视图控制器的 title 属性设置为页面的标题。”

那么为什么会发生这种情况以及如何解决这个问题?

我还采用了 turbo-ios 演示应用程序,并更改了

basic
中的
turbolinks5
Demo.swift
的定义以指向我的应用程序,我可以在页面之间导航,但标题不会更改。

更新

我发现如果我从

<head>

中删除这个标签
<%= turbo_include_tags %>

它解决了问题,并在应用程序的顶部显示了

<
导航链接(返回)。所以看起来问题出在 Turbo Drive 上。我需要使用 Turbo Drive,有解决办法吗?

ruby ruby-on-rails-3 turbo turbo-ios
1个回答
0
投票

由于缺乏适当的标题元素更新,Turbo iOS 似乎可能不会更新标题。尝试使用 JavaScript 在每个页面加载时显式设置文档标题。

试试这个:

document.addEventListener("turbo:load", () => {
    document.title = '<%= @title %>';
});
© www.soinside.com 2019 - 2024. All rights reserved.