2017-09-26 60 views
1

我试图使用http://127.0.0.1:8080/#/reset/finish?key=26983684729750581998 url访问组件。使用辅助插座时出现“无法匹配任何路由”错误

路由配置提供Error: Cannot match any routes. URL Segment: 'reset/finish'

export const passwordResetFinishRoute: Route = { 
    path: 'reset/finish', 
    component: PasswordResetFinishComponent, 
    outlet: 'loginOutlet' 
}; 

以下是我的路由器出口配置:

<router-outlet></router-outlet> 
<router-outlet name="loginOutlet></router-outlet> 

我相信,我导入路由配置。因为当我删除outlet: 'loginOutlet'部分时,组件显示在主路由器中。

什么原因Angular在提供插座时找不到路线配置?

回答

-1

这些路线有很大的区别。第一个是带有子路由的路由,第二个是没有子节点的基于命名组件的路由。

对于第一个,你告诉加载路线作为插座的孩子。所以一旦路由完成,在路由内部它将搜索<router-outlet></router-outlet>并且将在那里加载PasswordResetFinishComponent

由于没有提及名称和路由是'',它将作为子路由加载内部。所以它会直接加载

<router-outlet> <router-outlet></router-outlet> </router-outlet>

但是对于第二个,因为它是一个命名的路由器插座loginOutlet。所以它会找到<router-outlet name='loginOutlet'></router-outlet>并将其加载到组件中。

+0

我不明白你的答案。你能澄清一点吗?你声明,第一个加载主要出口,但它没有加载。它提供了一个如问题中所述的错误。尽管第一个是空白路线,但请注意它有一个父母。 – Halil

+0

我修改了答案,看它是否有意义 –

+0

在Angular中,路由配置与路由器插座的父子关系之间没有连接。这并不意味着应在父路由器插座的孩子内部显示子路由。 – Halil

相关问题