是否可以在 Vaadin 14 和 RouterLink 中添加 uri 的#fragment 部分?
Is it possible to add #fragment part of uri in Vaadin 14 and RouterLink?
是否可以在 Vaadin 14 和 RouterLink 中添加 #fragment
部分 URI?
我在 Vaadin 文档中找不到任何内容。
我需要它才能从另一个视图快速访问视图的特定部分。
Is it possible to add #fragment part of URI in Vaadin 14 and RouterLink?
不,那是不可能的。您的问题有一个解决方案*,但是 RouterLink
没有任何方法来定义 url 片段,因此它会滚动到具有给定 ID 的 HTML 元素。
*如何实现您的需求:
让您的目标视图 class 实现 HasUrlParameter<String>
(在 setParameter 上使用 @Wildcard 注释,这样您也可以在不指定片段参数的情况下导航到该视图)。
在您视图的 setParameter 方法中,您然后读取给定的参数,如果它不为空,您可以执行一些 javascript 滚动到具有给定 id 的元素。现在您可以像这样在 RouterLink 中指定片段:
new RouterLink("MyView", MyView.class, "#my-fragment");
是的,这不是最佳解决方案,远非如此,但如果您确实需要它,您可以做到。
如果您希望发生这种情况,请创建一个票证以将 API 添加到 RouterLink 以在 github repo of vaadin-flow 中定义 url 片段。
是否可以在 Vaadin 14 和 RouterLink 中添加 #fragment
部分 URI?
我在 Vaadin 文档中找不到任何内容。
我需要它才能从另一个视图快速访问视图的特定部分。
Is it possible to add #fragment part of URI in Vaadin 14 and RouterLink?
不,那是不可能的。您的问题有一个解决方案*,但是 RouterLink
没有任何方法来定义 url 片段,因此它会滚动到具有给定 ID 的 HTML 元素。
*如何实现您的需求:
让您的目标视图 class 实现 HasUrlParameter<String>
(在 setParameter 上使用 @Wildcard 注释,这样您也可以在不指定片段参数的情况下导航到该视图)。
在您视图的 setParameter 方法中,您然后读取给定的参数,如果它不为空,您可以执行一些 javascript 滚动到具有给定 id 的元素。现在您可以像这样在 RouterLink 中指定片段:
new RouterLink("MyView", MyView.class, "#my-fragment");
是的,这不是最佳解决方案,远非如此,但如果您确实需要它,您可以做到。
如果您希望发生这种情况,请创建一个票证以将 API 添加到 RouterLink 以在 github repo of vaadin-flow 中定义 url 片段。