Angular2组件在重定向后加载了2次

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

我面临着angular2组件“Home”在用户身份验证后从登录组件重定向后加载2次的问题。请在下面查找有关组件和路由的详细信息:-

我有一个登录组件,它是登录路由器提供者的一部分。登录\u路由器\u提供程序包括以下路由

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