Угловой входной компонент - PullRequest
0 голосов
/ 17 марта 2019

Я хочу открыть ManagePointsDialogComponent как диалог. Когда я нажимаю функцию addPoints, я получаю сообщение об ошибке.

Мой ленивый модуль: users.management.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { SharedModule } from "../../shared/shared.module";
import { UsersListComponent } from './screens/users-list/users-list.component';
import { UsersManagementRoutingModule } from './users-management-routing.module';
import { UsersManagementComponent } from './components/users-management/users-management.component';
import { UserCreateComponent } from './screens/user-create/user-create.component';
import { UserDetailsComponent } from './screens/user-details/user-details.component';
import { ManagePointsDialogComponent } from './components/manage-points-dialog/manage-points-dialog.component';

@NgModule({
  declarations: [
    UsersListComponent,
    UserCreateComponent,
    UserDetailsComponent,
    UsersManagementComponent,
    ManagePointsDialogComponent,
  ],
  imports: [
    CommonModule,
    SharedModule,
    UsersManagementRoutingModule,
  ],
  entryComponents: [
    ManagePointsDialogComponent,
  ]
})
export class UsersManagementModule { }

Этот компонент находится внутри ленивого модуля. Из этого компонента я хочу открыть диалог. пользователей-list.component.ts

constructor(private dialog: MatDialog) { }

private addPoints(id: string): void {
   this.dialog.open(ManagePointsDialogComponent, ManagePointsDialogComponent.buildConfiguration({addPoints: true, actionText: 'Add'}))
}

Что не так?

UsersListComponent.html:28 ERROR Error: No component factory found for ManagePointsDialogComponent. Did you add it to @NgModule.entryComponents?
    at noComponentFactoryError (core.js:9876)
    at CodegenComponentFactoryResolver.push../node_modules/@angular/core/fesm5/core.js.CodegenComponentFactoryResolver.resolveComponentFactory (core.js:9914)
    at CdkPortalOutlet.push../node_modules/@angular/cdk/esm5/portal.es5.js.CdkPortalOutlet.attachComponentPortal (portal.es5.js:654)
    at MatDialogContainer.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialogContainer.attachComponentPortal (dialog.es5.js:195)
    at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog._attachDialogContent (dialog.es5.js:1046)
    at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog.open (dialog.es5.js:850)
    at UsersListComponent.push../src/app/lazy-modules/users-management/screens/users-list/users-list.component.ts.UsersListComponent.addPoints (users-list.component.ts:48)
    at Object.action (users-list.component.ts:18)
    at Object.eval [as handleEvent] (UsersListComponent.html:33)
    at handleEvent (core.js:23106)

1 Ответ

0 голосов
/ 17 марта 2019

Может быть, это сработает, если вы добавите его в свой модуль приложения, потому что иногда entryComponents плохо работает с отложенной загрузкой.надеюсь, это поможет

...