Использование forChild и forRoot с модулем роутера - PullRequest
0 голосов
/ 06 марта 2019

Я немного запутался в поведении forRoot child и forChild при работе с RouterModule.

Если я использую RouterModule.forChild (маршруты) внутри модуля маршрутизации и импортирую его в app.module.ts , а затем, если я попытаюсь использовать router-outlet внутри app.component.ts , выдает ошибку.

Согласно определению:

forChild создает модуль, который содержит все директивы и данные маршруты, но не включает службу маршрутизатора.

Служба маршрутизатора предназначена для определения местоположения браузера, но почему она не может найти директиву розетки маршрутизатора, поскольку в определении четко указано, что она будет содержать все директивы.

Но если то же самое делается внутри функционального модуля, он работает нормально.

Извините, что не публикуем код, так как он будет длинным.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Проверка исходный код маршрутизатора .

forChild регистрирует маршруты, тогда как forRoot регистрирует маршруты и настраивает / инициализирует сам маршрутизатор

2 голосов
/ 06 марта 2019

RouterModule.forRoot() должно быть в AppModule.Это тот, который создает службы маршрутизатора.Все остальные модули будут использовать RouterModule.forChild([]) для обработки маршрутизации.

В приложении должно быть только одно использование forRoot.

...