Вложенные угловые компоненты с несколькими модулями (Jhipster) - PullRequest
0 голосов
/ 07 октября 2019

Позвольте мне сказать, что у меня есть два модуля в моем приложении (скажем, Parent и Child ), каждый из которых имеет свои компоненты, и я хочучтобы показать дочерний компонент внутри родительского компонента

Я попытался экспортировать дочерний компонент в дочернем модуле, а затем импортировать его в родительский модуль. Это сработало! дочерний компонент показан внутри моего родительского компонента

Но у меня есть одна проблема , которая говорит о том, что мой дочерний компонент является частью 2 модулей ! и вот когда я пытаюсь показать любой дочерний компонент, я застрял с этим, если кто-то может помочь. Было бы очень полезно

после того, как я переместил дочерний модуль в app.module, это мои модули

Дочерний модуль:

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { WinpharmSharedModule } from 'app/shared/shared.module';
import { StockComponent } from './stock.component';
import { StockDetailComponent } from './stock-detail.component';
import { StockUpdateComponent } from './stock-update.component';
import { StockDeletePopupComponent, StockDeleteDialogComponent } from './stock-delete-dialog.component';
import { stockRoute, stockPopupRoute } from './stock.route';

const ENTITY_STATES = [...stockRoute, ...stockPopupRoute];

@NgModule({
  imports: [WinpharmSharedModule, RouterModule.forChild(ENTITY_STATES)],
  declarations: [StockComponent, StockDetailComponent, StockUpdateComponent, StockDeleteDialogComponent, StockDeletePopupComponent],
  entryComponents: [StockComponent, StockUpdateComponent, StockDeleteDialogComponent, StockDeletePopupComponent]
})
export class WinpharmStockModule {}

Родительский модуль:

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { WinpharmSharedModule } from 'app/shared/shared.module';
import { ProduitComponent } from './produit.component';
import { ProduitDetailComponent } from './produit-detail.component';
import { ProduitUpdateComponent } from './produit-update.component';
import { ProduitDeletePopupComponent, ProduitDeleteDialogComponent } from './produit-delete-dialog.component';
import { produitRoute, produitPopupRoute } from './produit.route';

const ENTITY_STATES = [...produitRoute, ...produitPopupRoute];

@NgModule({
  imports: [
    WinpharmSharedModule,
    RouterModule.forChild(ENTITY_STATES)
  ],
  declarations: [
    ProduitComponent,
    ProduitDetailComponent,
    ProduitUpdateComponent,
    ProduitDeleteDialogComponent,
    ProduitDeletePopupComponent
  ],
  entryComponents: [ProduitComponent, ProduitUpdateComponent, ProduitDeleteDialogComponent, ProduitDeletePopupComponent]
})
export class WinpharmProduitModule {}

затем app.module.ts:

import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
...
import { WinpharmStockModule } from './entities/stock/stock.module';

@NgModule({
  imports: [
    BrowserModule,
    NgbModule,
    // Here's the child module
    WinpharmStockModule,
    WinpharmSharedModule,
    WinpharmCoreModule,
    WinpharmHomeModule,
    // jhipster-needle-angular-add-module JHipster will add new module here
    WinpharmEntityModule,
    WinpharmAppRoutingModule
  ],
  declarations: [...
})
export class WinpharmAppModule {}

Ошибка: «Uncaught (inОбещание): Ошибка: Тип ChildComponent является частью объявлений 2 модулей: ChildModule и ParentModule ! Пожалуйста, рассмотрите возможность перемещения ChildComponent ввышестоящий модуль, который импортирует ParentModule и ChildModule . Вы также можете создать новый NgModule, который экспортирует и включает в себя ChildComponent , а затем импортировать этот NgModule в ParentModule и ChildModule .

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