我目前正在使用Angular 2.0(发布版本)开始一个新项目,我想定义一些全局数据模型/模式.据我了解,Angular 2没有处理纯数据类的默认方式,如下所示:
export class TestModel {
id: number;
name: string;
randomAttribute: number;
author: string;
}
Run Code Online (Sandbox Code Playgroud)
所以关于最佳实践的第一个问题是:在使用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
[...]
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是将其包含instruction.model.ts在shared.module导入的每个模块中并将其导出shared.module.这似乎不起作用,因为该模型不是指令,管道或模块.有没有办法出口呢?
更简单的解决方案是直接test.model.ts在需要它的每个模块中导入文件和每个其他共享模型.但这对于多个模型来说似乎很笨重而且不方便.
我想到的第三种可能的解决方案是将所有共享数据模型放在一个单独的文件夹中,将它们的导出捆绑在一个文件中,如下所示,并在需要它的每个模块中导入该文件.
directory-structure datamodel typescript angular2-modules angular