我有一个应用程序,其中包含许多在许多地方使用的简单“模型”类。我结束了很多导入,从那里导入了所有这些文件。
在一个测试应用程序(它是Ionic4 / Angular,但应该与任何Angular应用程序相同)中,我试图将几个类包装到Module中,这样我就可以仅通过一个import语句使用。 / p>
每个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
是这种方法,还是有更好的方法来做我想要做的事情?
在此先感谢您的帮助。
答案 0 :(得分:1)
在这里您做错了,您不能导出接口/类。您只能导出:
Other modules
Components
Directives
Pipes
您应该将模型放在单独的文件夹中,而不要放在模块中。 NgModule
是一个有角度的概念,不应与打字稿模块混淆。