如何将简单的类包装到Angular中的模块中

时间:2019-01-06 03:18:55

标签: angular ionic-framework

我有一个应用程序,其中包含许多在许多地方使用的简单“模型”类。我结束了很多导入,从那里导入了所有这些文件。

在一个测试应用程序(它是Ionic4 / Angular,但应该与任何Angular应用程序相同)中,我试图将几个类包装到Module中,这样我就可以仅通过一个import语句使用。 / p>

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 :(得分:1)

在这里您做错了,您不能导出接口/类。您只能导出:

Other modules
Components
Directives
Pipes

您应该将模型放在单独的文件夹中,而不要放在模块中。 NgModule 是一个有角度的概念,不应与打字稿模块混淆。