Я работаю с Ionic, и у меня есть IonicPage, называемый Login с соответствующими файлами (login.html, login.module.ts, login.scss, login.ts)
В файле login.module.ts
, который я определяю в провайдерах массива для некоторых файлов Provider
и Service
который я использую только при входе в систему, поэтому я не добавляю их в app.module.ts
, и это очень хорошо работает для меня
@NgModule({
declarations: [
LoginPage
],
imports: [
HttpModule,
IonicPageModule.forChild(LoginPage)
],
entryComponents: [
LoginPage
],
providers: [
settingsProvider,
accessProvider,
accessService
]
})
С другой стороны, у меня есть модуль под названием QuestionsModule
, который состоит изЕще 3 модуля, Questions1Module
, Questions2Module
и Questions3Modules
Где у меня в основном модуле:
@NgModule({
imports: [
Questions1Module,
Questions2Module,
Questions3Modules,
],
providers: [
questionService,
questionProvider
]
})
export class QuestionsModule {}
Из того, что я подумал, при добавлении в массив провайдеровдругие импортированные модули могут использовать мои импортированные Providers
и Services
, но я обязан, например, в модуле Questions1Module
снова добавить в @NgModule
объявление массива Providers
@NgModule({
declarations: [
Questions1Page,
],
imports: [
IonicPageModule.forChild(Questions1Page),
],
entryComponents: [
Questions1Page
],
providers: [
questionService,
questionProvider
]
})
Если это правильный способ сделать это, какой смысл импортировать его 2 раза в разные части, чтобы использовать провайдеров?, Еще один из моих сомнений заключается в том, что в моем app.module.ts
в массиве импорта яобъявили:
imports: [
BrowserModule,
LoginModule,
IonicModule.forRoot(MyApp, { mode: 'ios', backButtonText: '' }),
HttpClientModule,
],
И если вы видите, это нМне не нужно добавлять QuestionsModule
, но если LoginModule, если оба сгенерированы IonicPageModule, почему эта разница?