java - 是否可以在 Vaadin 14 和 RouterLink 中添加 uri 的#fragment 部分?
问题描述
是否可以在 Vaadin 14 和 RouterLink 中添加#fragment
部分 URI?
我在 Vaadin 文档中找不到任何内容。
我需要它才能从另一个视图快速访问视图的特定部分。
解决方案
是否可以在 Vaadin 14 和 RouterLink 中添加 URI 的#fragment 部分?
不,那是不可能的。您的问题有一个解决方案*,但RouterLink
没有任何方法来定义 url 片段,因此它会滚动到具有给定 id 的 HTML 元素。
*如何实现您的需求:
让您的目标视图类实现HasUrlParameter<String>
(在 setParameter 上使用@Wildcard注释,以便您也可以导航到此视图而无需指定片段参数)。
在您视图中的 setParameter 方法中,您然后读取给定参数,如果它不为空,您可以执行一些 javascript 滚动到具有给定 id 的元素。现在您可以像这样在 RouterLink 中指定片段:
new RouterLink("MyView", MyView.class, "#my-fragment");
是的,这不是一个最佳解决方案,远非如此,但如果你真的需要它,你可以做到。
如果您希望这种情况发生,请创建一个票证,用于将 API 添加到 RouterLink 以在vaadin-flow 的 github存储库中定义 url 片段。
推荐阅读
- c# - C# - 在获取 Adobe Creative Cloud 的主窗口句柄时遇到问题
- spring-boot - 无法设置 HikariCP 最大池大小
- maven-3 - 将spring boot maven项目导入STS时出现POM错误
- laravel - Laravel/Docker - 容器无法将日志保存到绑定挂载中
- git - 如何安装“npm install react-youtube”?(错误)
- django - Postgres:按字段细分表格
- rest - 空手道并行跑步者在 Eclipse 中失败
- sql - SQL - 根据前一行更新行
- php - Wordpress the_content() 输出文档类型声明
- ruby-on-rails - 如何在 ruby 中针对 sql 注入验证日期