gpt4 book ai didi

routing - SAPUI5 限制页面可见性

转载 作者:行者123 更新时间:2023-12-04 15:55:48 24 4
gpt4 key购买 nike

有什么方法/最佳实践可以在 SAPUI5 中隐藏用户不可用的页面?

让我们看一个例子。我有一个带有用户登录页面的复杂应用程序。客户可以在这里登录应用程序,并从后端系统检索他们的角色数据。基于这些角色,不允许某些用户创建新对象。只有登录的用户才能看到应用程序页面。
我正在使用路由,因此也可以通过直接链接访问编辑等功能。

目前我在 Component.js 中使用 onRouteMatched 事件处理程序,它检查当前用户 session 存储。如果未找到用户 session ,它将请求重定向到登录页面。

问题是它会在导航到登录页面之前显示请求的页面一两秒钟。真的很丑。

我应该在哪里实现这种功能?这个用例有什么钩子(Hook)方法吗?

我想我需要一个钩子(Hook)方法,在显示与给定路由匹配的 View 并将调用重定向到登录页面之前调用它。不幸的是,我在这个主题中找不到任何有用的文档。

谢谢!

最佳答案

我使用的方法记录在这里 Display a Target

总而言之,您可以将 View 分配给 manifest.json 中的目标。 ,但不是路线/模式。这使得它无法通过直接链接访问。

在您的应用程序中,您可以“显示” View 而不是路由到它。行为是相同的,只是您确实丢失了历史记录。因此,按下浏览器后退按钮的行为会有所不同,因为您实际上并没有路由到新 View 。

this.getOwnerComponent().getRouter().getTargets().display("edit", {
fromTarget : "home"
});

如果您仍希望通过直接链接访问 View ,您可以在允许所有用户访问的 View 中使用自定义 URL 参数。

例如,您可以使用路线
yourAppUrl.com/home?navTo=edit
在您的 Controller 中,使用 jQuery 解析参数。
_onPatternMatched: function() {
var navParam = jQuery.sap.getUriParameters().get("navTo");
if (navParam === "edit") {
//handle your user verification here, then display the target
this.getOwnerComponent().getRouter().getTargets().display("edit", {
fromTarget : "home"
});
}
}

关于routing - SAPUI5 限制页面可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com