Angular 6 - правильная маршрутизация при импорте модуля library / npm с дочерними маршрутами - PullRequest
0 голосов
/ 26 июня 2018

Я собрал модуль Angular 6 Library, следуя этому руководству , и фиктивное приложение, работающее вдоль моей библиотеки, чтобы я мог импортировать и тестировать модули во время разработки.

Модуль библиотеки, который я импортирую из библиотеки, имеет дочерние маршруты. Который я думаю, является коренной причиной этой проблемы. Пун намеревался. Модуль маршрутизации для библиотечного модуля выглядит следующим образом:

// Library Module routing
const routes: Routes = [{
    path: '',
    children: [
        { path: '', component: LoginFormComponent },
        { path: 'forgot-password', component: ForgotPasswordFormComponent }
    ]
}];

@NgModule({
    imports: [ RouterModule.forChild(routes) ],
    exports: [ RouterModule ]
})
export class LoginRoutingModule {}

В моем фиктивном приложении у меня есть модуль Modules, который загружается модулем App Routing:

// Dummy app root routing
const appRoutes: Routes = [
    {
        path: '',
        children:  [{
            path: 'modules',
            loadChildren: './modules/modules.module#ModulesModule'
        }]
    },
    { path: '**', redirectTo: '' }
];

@NgModule({
    imports: [RouterModule.forRoot(appRoutes)],
    exports: [RouterModule]
})
export class AppRoutingModule { }

Файл модуля Modules, куда я импортирую библиотечный модуль, выглядит следующим образом:

// Dummy app modules routing
import { LoginModule } from '@library-namespace/modules';
import { environment } from '../../environments/environment';

@NgModule({
    imports: [
        CommonModule,
        LoginModule.forRoot(environment)
    ],
    declarations: [ ModulesComponent ]
})
export class ModulesModule { }

При переходе на localhost: 4200 / modules создается экземпляр библиотечного модуля, даже если в файле modules.component.html нет селектора компонентов библиотечного модуля. Все остальные события в моем файле modules.component.html также не отображаются. Я думаю, это потому, что корневой путь библиотечного модуля - «»? Мне нужно включить компонент выбора, когда я передаю в функцию, чтобы наблюдать за EventEmitter. Селектор выглядит так:

<lib-login (loginEvent)="login($event)"></lib-login>

Я хочу перейти в моем фиктивном приложении к localhost: 4200 / modules отображает библиотечный модуль и захватывает источник событий в компоненте модулей фиктивного приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...