Как обернуть простые классы в модуль в Angular - PullRequest
0 голосов
/ 06 января 2019

У меня есть приложение, в котором есть много простых классов "Model", которые используются во многих местах. Я закончил с большим количеством импорта, импортируя все это оттуда отдельные файлы.

В тестовом приложении (это Ionic4 / Angular, но должно быть одинаковым для любого приложения Angular) я попытался обернуть пару классов в модуль, чтобы затем использовать только один оператор импорта.

enter image description here

Каждый класс Model является простым классом, например

export class Model1 {
  public name:string;
}

А в modules.module.ts у меня есть следующее ...

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Model1 } from './model1';
import { Model2 } from './model2';

@NgModule({
  declarations: [],
  imports: [
    CommonModule
  ],

  exports:[Model1, Model2]
})
export class ModelsModule { }

Теперь я хочу использовать это в HomeModule

В home.module.ts У меня импортирован модуль Models ..

  @NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    ModelsModule,  <------ my import
    RouterModule.forChild([
      {
        path: '',
        component: HomePage
      }
    ])
  ],
  declarations: [HomePage]
})
export class HomePageModule {}

Пока все выглядело хорошо.

Теперь я хотел потреблять Модели в home.page.ts ..

Я добавил импорт ..

import { Model1, Model2 } from '../models/models/models.module';

Однако в среде IDE (VSCode) теперь отображается следующая ошибка.

Module '"../models/models/models.module"' has no exported member 'Model1'.ts(2305) import Model1

Я не уверен, что сделал неправильно.

Могу ли я (и рекомендуется) использовать Modules, это такой способ, или есть какой-то лучший способ сделать то, что я после?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 06 января 2019

Здесь вы делаете ошибку, вы не можете экспортировать интерфейс / класс. Вы можете экспортировать только:

Other modules
Components
Directives
Pipes

Ваши модели должны храниться в отдельной папке, но не внутри модуля. NgModule является угловым понятием и его не следует путать с модулем машинописи.

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