尝试在版本“@ 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中显示,错误被打印到控制台。但是,当我使用到Home Component的链接时,会显示二手。
一旦我改变了
templateUrl: 'home.html'
至
template: '<router-outlet></router-outlet>'
错误消失,显示HomeComponent并且路由按预期方式工作。
这是一个已知的问题吗?它是否适用于使用templateUrl的人?有什么我必须尊重得到它的工作吗?
问题是,由于应用程序加载屏幕,< router-outlet>< / router-outlet>由于种族条件,有时候还没有存在。如果您需要隐藏包含插座的html部件,请使用[隐藏]而不是* ngIf,以确保插座始终位于DOM中,并且不会有条件地移除。