在命名的插座中加载公共组件

时间:2019-12-09 14:08:43

标签: angular angular-ui-router

我有一个登录页面,其中只有登录组件,这是我的要求。用户登录后,用户将进入具有左侧导航栏和右侧组件的页面。在左侧导航的帮助下,一个人可以导航到不同的组件。

问题是,登录后,所有页面上都应该有左侧导航组件,而不是登录页面上。

我试图在https://stackblitz.com/edit/angular-common-component-in-named-router-outlet复制相同的内容,但是它只是加载了导航组件。路由器配置看起来像

[
    { path: "", component: HomeComponent },
    {
        path: "messages",
        component: NavComponent,
        children: [{ path: "", component: MessagesComponent, outlet: "content" }]
    },
    {
        path: "users",
        component: NavComponent,
        children: [{ path: "", component: UsersComponent, outlet: "content" }]
    }
];

1 个答案:

答案 0 :(得分:1)

命名网点是PITA,不值得为此烦恼,尤其是为此,您可以这样做:

<router-outlet></router-outlet>

,然后在导航组件中插入普通的[ { path: "", component: HomeComponent }, { path: "main", component: NavComponent, children: [ { path: "messages", component: MessagesComponent}, { path: "users", component: UsersComponent } ] } ]; ……在此结构中,实际上不需要名称。但我认为,最好使用以下结构:

TestScroll( HWND hwnd, UINT msg, UINT_PTR nId, DWORD nTickCount)
{
    CWnd* pNextWnd = tmpWnd->GetWindow( GW_CHILD) ;

    if ( pNextWnd != NULL)
        TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;

    pNextWnd = tmpWnd->GetNextWindow( GW_HWNDNEXT) ;

    if ( pNextWnd != NULL)
        TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;

}

和导航组件中的同一路由器出口。唯一的不同是,您为登录路径添加了“ main”前缀,因此无需一遍又一遍地重复路由以使其匹配