Angular2 路由器:找不到要加载的主插座 'HomeComponent'

Angular2 Router: Cannot find primary outlet to load 'HomeComponent'

尝试切换到新路由器,如版本“@angular/router”:“3.0.0-beta.2”结合“@angular/*”:“2.0.0 -rc.4”,遵循 ComponentRouter 上的官方文档。

但是,我在尝试使用默认 HomeComponent 加载我的应用程序时遇到问题:

Cannot find primary outlet to load 'HomeComponent'

这似乎与使用 templateUrl 和外部 html 文件而不是使用内联模板样式有关。

HomeComponent 最初未显示在 Window 中,错误被打印到控制台。但是,当我使用 link 到 Home 组件时,它显示为二手。

一旦我从

templateUrl: 'home.html'

template: '<router-outlet></router-outlet>'

错误消失,显示 HomeComponent 并且路由按预期工作。

这是一个已知问题吗?它对使用 templateUrl 的人有用吗?有什么我必须尊重才能让它发挥作用吗?

问题是,由于应用程序加载屏幕,<router-outlet></router-outlet> 由于竞争条件有时还不存在。如果需要隐藏包含插座的 html 部分,请使用 [hidden] 而不是 *ngIf,以确保插座始终在 DOM 中并且不会有条件地移除。