У меня есть три модуля особенности (в том числе Shared) в моем приложенииУгловая ошибка 2 Multiple декларация
1) CustomerModule
2) SiteModule
3) SharedModule
Оба Customer
и Site
module
импорта shared
module
и Site module
охотно загружается application
запуска в то время как customer module
настроен быть lazy load
.
Вот мой код выглядит
app.routing.ts
const appRoutes: Routes = [
{
path: '',
redirectTo: '/sites',
pathMatch: 'full'
},
{
path: 'customers',
loadChildren: 'app/customers/customers.module'
},
]
export const routing = RouterModule.forRoot(appRoutes);
app.module.ts
@NgModule({
imports:[routing, SiteModule],
declarations:[AppComponent]
bootstrap:[AppComponent]
})
export class AppModule{}
Это как моя особенность модуля выглядит
SiteModule
site.routing.ts
const routes: Routes = [
{ path: 'sites', component: SiteListComponent }
]
export const routing = RouterModule.forChild(routes);
site.module.ts
@NgModule({
imports: [routing, SharedModule],
declarations: [SiteListComponent, EditCustomerComponent]
})
export class SiteModule{}
CustomerModule
customer.routing.ts
const routes: Routes = [
{ path: '', component: CustomerListComponent}
]
export const routing = RouterModule.forChild(routes);
customer.module.ts
@NgModule({
imports: [routing, SharedModule],
declarations: [CustomerListComponent, EditCustomerComponent]
})
export default class CustomerModule{}
SiteModule
и CustomerModule
оба EditCustomerComponent
в declaration
списке, когда я перейти к customers
route
, я получил несколько declaration
error
для EditCustomerComponent
как в SiteModule
, так и CustomerModule
.
Я знаю, что это может быть исправить путем перемещения EditCustomerComponent
к общему module
, но это не то, что я хочу, так как это component
больше смысла проживает в customer module
.
Another workaround would быть к export в EditCustomerComponent
от CustomerModule
и then import into SiteModule
but что require в CustomerModule
не быть lazy loaded
который again я do не want.
Мне интересно, есть ли другой хороший способ справиться с этим.
Я не понимаю, почему EditCustomerComponent логически проживает в CustomerModule , но должны существовать как в CustomerModule, так и в SiteModule? Если он существует в обоих случаях, он не логически находится в одном из них. –
@AbdulRahmanAlHamali Позвольте мне понять, что 'EditCustomerComponent' находится в' CustomerModule'. Но этот компонент необходимо использовать как директиву в 'SiteModule'. – user2866746
Что такое сообщение об ошибке? –