Я сейчас пытаюсь установить title
страницы.
Сценарий
public class A extends FlexLayout implements RouterLayout {}
@Route(value = "b", layout = A.class)
public class B extends FlexLayout{}
@Route(value = "c", layout = A.class)
public class C extends FlexLayout{}
Попытки
Для этого я пытался позвонить UI.getCurrent().getPage().setTitle("demo title")
во время afterNavigation
.К сожалению, это не работает для начальной навигации (и ни один не работал при добавлении attachListener
).
Я также попытался настроить его, используя PageConfigurator
на внешней RouterLayout
, как это:
@Override
public void configurePage(InitialPageSettings settings) {
settings.addMetaTag("title", "demo title");
settings.addMetaTag("og:title", "demo title");
settings.addFavIcon("icon", "frontend/images/favicon.ico", "48x48");
}
HasDynamicTitle
, кажется, работает, только если реализующий класс также определяет
@Route
, но не инкапсулирующий
RouterLayout
Issue
По какой-то причинеRouter
сам устанавливает заголовок во время навигации.
![Stacktrace of the setTitleCall](https://i.stack.imgur.com/bsieo.png)
Router
определяет заголовок с помощью JS и переопределяет document.title
, тогда как Page.setTitle
кажетсяизменить только тег html.head.title
.
Вопрос
Как установить заголовок в одном месте?
Как можно запретить настройке формы Router
title к значению текущего URL?
Примечание
Использование аннотации @PageTitle
не вариант, так как в моем случае заголовок неизвестен во время компиляции.