首页 文章

在Angular中的模块内部显示单独的404未找到页面

提问于
浏览
-1

在我的Angular应用程序中,我希望有两个单独的Page Not Found页面 .

在应用程序根目录中,有一个用户可以使用:http://localhost:4200/xyz . 这可以 .

但是,我在我的管理模块中添加了一个,其上有一个AuthGuard . 如果用户已登录并导航到http://localhost:4200/admin/xyz,我希望他们转到管理模块中我未找到的页面 . 由于某种原因,他们将被注销并重定向回登录页面 .

请参考下面的示例项目(尝试转到/ admin,登录,然后将路径更改为/ admin / xyz并按Enter键):https://stackblitz.com/edit/angular-7tjyqx

同样,危机中心也是如此,它不是受保护的模块 . 尝试进入/ crisis-center / xyz,您将被重定向回危机中心而不是危机 - 未找到页面

1 回答

  • 1

    这是因为角度(AuthService)中的服务不作为延迟加载模块的单例共享 . 因此,每次直接从地址栏转到http://localhost:4200/admin/xyz时,都会创建一个新的服务实例,将isLogged设置为false,然后您将进入“登录”页面 . 但是,如果您登录并通过routerLink访问http://localhost:4200/admin/xyz,您将获得无页面

    发现,那是因为你在模块的同一服务实例内 .

相关问题