Angular2 Router - 如何在身份验证后推送导航?
Angular2 Router - how to push navigation after authentication?
我是 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
等将我带到经过身份验证的页面。这些页面中的每一个都将包含一个通用的导航栏组件。这个方法好看吗?
您可以使用 window.location.href
更改路线,如下所示:
window.location.href = '/create/team-name?email=' + email;
回答我自己的问题!我在 Edit 部分中列出的方法非常有效。应用程序组件实际上是空白的,只有一个路由器插座。路径 /
将我带到主页。
我是 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
等将我带到经过身份验证的页面。这些页面中的每一个都将包含一个通用的导航栏组件。这个方法好看吗?
您可以使用 window.location.href
更改路线,如下所示:
window.location.href = '/create/team-name?email=' + email;
回答我自己的问题!我在 Edit 部分中列出的方法非常有效。应用程序组件实际上是空白的,只有一个路由器插座。路径 /
将我带到主页。