Angular2 Router: не удается найти основной выход для загрузки "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, а ошибка выводится на консоль. Однако, когда я использую ссылку на Домашний Компонент, она показывается из вторых рук.
Как только я перейду с
templateUrl: 'home.html'
в
template: '<router-outlet></router-outlet>'
ошибка исчезла, HomeComponent отображается, и маршрутизация работает, как ожидалось.
Это известная проблема? Это работает для кого-то, использующего templateUrl? Есть ли что-то, что я должен уважать, чтобы заставить это работать?
1 ответ
Проблема заключалась в том, что из-за экрана загрузки приложения <router-outlet></router-outlet>
иногда не существовало из-за состояния гонки. Если вам нужно скрыть HTML-часть, содержащую розетку, используйте [hidden]
вместо *ngIf
, чтобы розетка всегда находилась в DOM и не была удалена условно.