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

Tho*_*iel 18 angular2-router angular2-router3 angular

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

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

Cannot find primary outlet to load 'HomeComponent'
Run Code Online (Sandbox Code Playgroud)

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

HomeComponent最初未显示在Window中,错误将打印到控制台.但是,当我使用Home Component的链接时,它会显示为秒针.

我一改变

templateUrl: 'home.html'
Run Code Online (Sandbox Code Playgroud)

template: '<router-outlet></router-outlet>'
Run Code Online (Sandbox Code Playgroud)

错误消失,HomeComponent显示,路由按预期工作.

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

Tho*_*iel 27

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