компонент выбора не является известным элементом - PullRequest
0 голосов
/ 09 мая 2019

У меня есть 2 модуля AppModule и MyArtModule с некоторыми объявленными компонентами.

, когда я пытался использовать селектор ConfirmComponent в GraphicsComponent, он работает нормально, но когда я пытался использоватьConfirmComponent селектор в MyArtComponent выдает ошибку 'artifi-confirm-alert' is not a known element:

'artifi-verify-alert' не является известным элементом:

  1. Если'artifi-verify-alert' является угловым компонентом, затем убедитесь, что он является частью этого модуля.

  2. Если 'artifi-verify-alert' является веб-компонентом, добавьте 'CUSTOM_ELEMENTS_SCHEMA«@ NgModule.schemas» этого компонента для подавления этого сообщения.

  • AppModule
    • GraphicsComponent
    • ConfirmComponent
    • MyArtModule
      • MyArtComponent

Код AppModule

@NgModule({
  declarations: [
    GraphicsComponent,
    ConfirmAlertComponent
  ],
  imports: [
    BrowserModule,
    MyArtModule
  ],
  ...
})

Код MyArtModule

@NgModule({
  declarations: [
    MyArtComponent,
  ],
  imports: [
    CommonModule
  ],
  providers: [
    MyArtService
  ],
  exports: [
    MyArtComponent
  ]
})

Повторный код выпуска - https://stackblitz.com/edit/skdroid-childmodule-in-child-component

Я создал OneModule с OneComponent и TwoModuleс TwoComponent.

<app-one></app-one> и <app-two></app-two> доступны в AppComponent.

, но не могут получить доступ к <app-two></app-two> в компоненте AppOne.

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

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

@NgModule({
  declarations: [ConfirmComponent],
  exports: [ConfirmComponent],
})

export class SharedModule {
}

И добавьте его в AppModule:

@NgModule({
  declarations: [
    GraphicsComponent,
  ],
  imports: [
    BrowserModule,
    MyArtModule,
    SharedModule
  ],
  ...
})

И импортируйте его в свой ArtModule:

@NgModule({
  imports: [
    CommonModule,
    SharedModule
  ],
  declarations: [ConfirmAlertComponent],
  exports: [
    ConfirmAlertComponent
  ]
})
export class MyArtModule { }

Stackblitz

0 голосов
/ 09 мая 2019

Ваш ConfirmComponent и GraphicsComponent находятся в одном модуле!Так они знали друг друга!Но вы пытаетесь использовать этот ConfirmComponent для другого компонента, который находится в другом модуле (в вашем случае: MyArtModule), который не знает, существует ли этот компонент!

Вы должны экспортировать ConfirmComponent, чтобы он мог включитьпо всему приложению!

Добавить ConfirmComponent в экспорт Массив AppModule

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