在我的角度应用程序中,我希望有两个单独的页面未找到页面。
在应用程序根目录中,有一个是为了防止用户出现类似于http://localhost:4200/xyz的情况。这很好。
但是,我在我的管理模块中添加了一个,它上面有一个AuthGuard。如果用户登录并导航到http://localhost:4200/admin/xyz,我希望他们转到管理模块中的未找到页面。由于某些原因,它们将被注销并重定向回登录页面。
请参阅下面的示例项目(尝试转到/admin,登录,然后将路径更改为/admin/xyz并按enter):https://stackblitz.com/edit/angular-7tjyqx
同样,危机中心也发生了同样的事情,它不是一个受保护的模块.试着去/center/xyz,您将被重定向回危机中心,而不是找到危机页面。
发布于 2018-08-11 01:33:51
这是因为棱角中的服务(AuthService)不是作为延迟加载模块的单节点共享的。因此,每次从地址栏直接进入http://localhost:4200/admin/xyz时,都会创建一个新的服务实例,该实例将isLogged设置为false,然后抛出到Login页面。但是,如果您登录并通过routerLink访问http://localhost:4200/admin/xyz,您将得到no页面。
找到了,这是因为您在模块的同一个服务实例中。
https://stackoverflow.com/questions/51794776
复制相似问题