两条路线具有相同的模块。如何配置? AuthorizeStep到位(不同的授权规则)。
答案 0 :(得分:0)
实际路由配置可通过navigationInstruction.config
在AuthorizeStep中使用,因此您可以使用route.name
,远程请求或additional route data等来实现您的逻辑......
演示:https://gist.run/?id=c8bdb291aa052ee92b4a1403e4ac10d1
我们有两条路线:route1
和route2
。虽然可以访问route1
,但route2
会转到错误页面。
class AuthorizeStep {
run(navigationInstruction, next) {
if (navigationInstruction.config.name !== "unauthorized") {
var hasPermission = navigationInstruction.config.name === "route1";
if (!hasPermission) {
return next.cancel(new Redirect('unauthorized'));
}
}
return next();
}
}
在这种情况下,ModuleId并不重要。但是,重用相同的VM可能会导致另一个问题。我考虑将viewmodel的当前activationStrategy
更改为activationStrategy.replace
,以便每次都获得新的VM实例。 Docs: Reusing an existing VM section