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 и не была удалена условно.

Другие вопросы по тегам