Angular2组件在重定向后加载了2次
我面临着angular2组件“Home”在用户身份验证后从登录组件重定向后加载2次的问题。请在下面查找有关组件和路由的详细信息:- 我有一个登录组件,它是登录路由器提供者的一部分。登录\u路由器\u提供程序包括以下路由Angular2组件在重定向后加载了2次,angular,angular2-routing,Angular,Angular2 Routing,我面临着angular2组件“Home”在用户身份验证后从登录组件重定向后加载2次的问题。请在下面查找有关组件和路由的详细信息:- 我有一个登录组件,它是登录路由器提供者的一部分。登录\u路由器\u提供程序包括以下路由 const loginRoutes: Routes = [ { path: '', component: Login }, { path: 'login', component: Login }, { path: 'Home', c
const loginRoutes: Routes = [
{ path: '', component: Login },
{ path: 'login', component: Login },
{ path: 'Home', component: Home, pathMatch: 'full' },
...HOME_ROUTER_PROVIDERS
];
export const LOGIN_ROUTER_PROVIDERS: ModuleWithProviders = RouterModule.forRoot(loginRoutes);
我的登录组件由以下方法组成,该方法具有重定向到主组件的功能
export class Login {
...
public Login(userId, password)
{
//authenticate user and on sucessful authentication redirected to Home
this.router.navigate(['/Home']);
}
}
登录/身份验证后,在home_ROUTER_PROVIDERS中配置home组件和一些其他子级路由组件
主路由器提供程序由以下路由配置组成
export const HOME_ROUTER_PROVIDERS: Routes = [
{
path: 'Home',
component: Home,
children: [
{ path: 'WorkbookList/:group', component: WorkbookList },
{ path: 'Workbook/:workbookID', component: Workbook },
//some other child level routing components route
]
}
];
主组件如下所示
export class Home {
constructor(private _SessionService: SessionService) {
console.log("In constructor of Home - After Login route");
}
}
当应用程序被执行并且成功地进行身份验证时,home组件被加载,但是在控制台上,我可以注意到语句“在home的构造函数中-登录后路由”被打印了两次
我尝试在loginRoutes常量中注释以下两行,但收到的错误消息为“错误:无法匹配任何路由:'Home'”
我在这里犯了什么错误?为什么主组件加载2次
我是否需要在单独的NGU模块中提供登录路由和家庭路由器?目前在我的设计中,两者都位于同一模块中,即所有组件都位于同一模块中。
在同一模块中的这个场景中,如何拥有两个不同的路由并从一个路由重定向到另一个路由?有什么想法吗?你的HomeComponent是否在单独的模块中?没有,所有组件都在同一个模块中。看看生成的html,它有多个标记吗?@Chandermani,生成的html没有多个标记。它只加载了2次,即事件执行了2次。您可以从
loginRoute
中删除{path:'Home',component:Home,pathMatch:'full'},
,然后重试。子路由应该足够了。您的HomeComponent在单独的模块中吗?不,所有组件都在同一个模块中。看看生成的html,它有多个标记吗?@Chandermani,生成的html没有多个标记。它只加载了2次,即事件执行了2次。您可以从loginRoute
中删除{path:'Home',component:Home,pathMatch:'full'},
,然后重试。子路径应该足够了。
{ path: 'Home', component: Home, pathMatch: 'full' },
...HOME_ROUTER_PROVIDERS