我目前正在使用Angular 2.0(发布版本)启动一个新项目,并且我想定义一些全局数据模型/架构。据我所知,Angular 2没有处理此类纯数据类的默认方法:
export class TestModel {
id: number;
name: string;
randomAttribute: number;
author: string;
}
关于最佳实践,我的第一个问题是:在使用Angular 2时,我是否应该定义这样的类?
对于整个应用程序的设计和概念,我认为它们是必要的,但我不确定我这里的思考方式是否正确。
这些数据类有时需要在多个模块(ngModule)中使用,因此我的第二个问题是我应该把它们放在应用程序的哪个位置?目前,我的结构如下:
/app
/shared
shared.module.ts
test.model.ts
/module1
module1.module.ts
foo.component.ts
[...]
/module2
module2.module.ts
bar.component.ts
[...]
app.module.ts
[...]
我最初的想法是将instruction.model.ts
包含在shared.module
中,并将其导出到导入shared.module
的每个模块中。但这似乎行不通,因为该模型不是指令、管道或模块。是否有一种方法可以导出它?
更简单的解决方案是直接在每个需要它的模块中导入test.model.ts
文件和其他共享模型文件。但这似乎很笨拙,对于多个模型也不方便。
我想到的第三种可能的解决方案是将所有共享数据模型放在一个单独的文件夹中,将它们的导出打包在一个类似下面的单个文件中,然后在每个需要它的模块中导入此文件。
tsconfig.json
中的 "paths" 来避免使用绝对路径并缩短路径长度:https://dev59.com/6VgR5IYBdhLWcg3wV78y#41460972。设置好后,我个人会将它们放在./src/app/core/models
中,这将转换为@core/models
或只是@models
,具体取决于你想要多短的路径。 - tkit