【问题标题】:Angular2 Router - how to push navigation after authentication?Angular2路由器 - 身份验证后如何推送导航?
【发布时间】:2023-03-10 06:12:01
【问题描述】:

我是 Angular2 路由的新手。我有一个用例,主页只有一个登录对话框。此页面上没有导航元素。当用户成功登录后,他们应该登陆主页面,该页面具有用于导航到应用程序其他页面的选项卡。如何为这个用例配置路由器?

编辑

为了澄清,这是我的用例的页面结构:

     Home (Login) (/)
     /       |      \
  Page1    Page2    Page3
(/page1) (/page2)  (/page3)

主页有没有导航。离开主页的唯一方法是成功登录。这应该带您到 Page1。第 1、2 和 3 页在顶部显示一个标签栏,用于在它们之间导航。

我查看了 Angular2 文档中的 example。在那里,应用程序直接从 Page1、Page2 级别开始。应用程序一出现,导航栏就可见。它位于应用程序级别,位于app.component.ts

所以我的问题是:如何实现如上所示的页面结构?如何构建代码和组件来实现这一目标?我猜应用程序组件将是空白的,只有一个路由器插座,路径 / 将我带到主页:

@Component({
  template:  `
    <router-outlet></router-outlet>
  `,
  directives: [RouterOutlet]
})
@RouteConfig([
  {path:'/',         name: 'Home',  component: HomeComponent, useAsDefault: true},
  {path:'/page1',    name: 'Page1', component: Page1Component},
  {path:'/page2',    name: 'Page2', component: Page2Component},
  {path:'/page3',    name: 'Page3', component: Page3Component}
])

路由/page1/page2 等将我带到经过身份验证的页面。这些页面中的每一个都将包含一个通用的导航栏组件。这种方法看起来不错吗?

【问题讨论】:

  • 你在说router.navigate();吗?

标签: angular angular2-routing


【解决方案1】:

您可以使用window.location.href 像这样更改路线:

window.location.href = '/create/team-name?email=' + email;

【讨论】:

    【解决方案2】:

    回答我自己的问题!我在 Edit 部分中提出的方法很有效。应用程序组件实际上是空白的,只有一个路由器插座。路径/ 将我带到主页。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 2018-12-19
      • 2021-12-20
      • 2016-12-11
      • 2016-11-14
      • 1970-01-01
      相关资源
      最近更新 更多