为什么没有Angular-CLI在Angular Project中为“模型”生成命令?

时间:2018-10-26 07:20:20

标签: javascript angular angular-cli

学习Angular时,我只是通过各种Angular-CLI命令来生成Angular的各个部分,例如“组件”,“服务”,“接口”,“管道”等。

通过Angular-CLI生成Angular项目

ng g c components/comp-1 //generates component
ng g s services/service-1 // generates service
ng g i interfaces/interface-1 // generates interface

但是,令我惊讶的是,为什么没有为' Model '生成命令(尽管Interface也可以完成一些工作-但是Model更强大,因为在类中也可以包含方法)。

在生成“自动生成模型”命令时,我缺少某些东西还是错过了Team-Angular吗?因为它们是OOPS框架的核心。

enter image description here

参考:

https://www.npmjs.com/package/angular-cli

5 个答案:

答案 0 :(得分:25)

因为模型是一个类,所以要使用--type这样的选项来生成模型:

ng generate class hero --type=model

将导致:

hero.model.ts

答案 1 :(得分:0)

您不能直接生成模型。实际上,模型是一类。 ng generate默认情况下仅允许以下类型的生成。

  1. appShell
  2. 应用程序
  3. 课程
  4. 组件
  5. 指令
  6. 枚举
  7. 守卫
  8. 界面
  9. 图书馆
  10. 模块
  11. 烟斗
  12. 服务
  13. serviceWorker
  14. 通用
  15. webWorker

因此,您可以使用--type选项定义一个生成类。 假设您想要一个类似bar.foo.ts

的类

您只需使用以下选项进行定义即可。

ng generate class bar --type=foo

根据您的情况,您可以使用此命令定义模块

ng generate class nameOfYourModule --type=model

它将生成nameOfYourModule.model.ts

请参考此ng生成的官方documentation,以获取更多信息。

答案 2 :(得分:0)

此命令还会生成模型

ng generate class employee --type

结果:

employee.ts employee.spec.ts

答案 3 :(得分:0)

我只使用 ng generate class(没有任何标志),我相信许多其他人也这样做。我认为我在 Angular 中使用纯类文件的唯一时间是使用模型。由于它们大部分位于模型文件夹中,因此几乎没有理由使用 --type=model 添加额外的 'model' 后缀。我相信这是 Angular 团队没有包含 'ng generate model' 命令的部分原因(因为它是类的重复)。

答案 4 :(得分:0)

只需在项目根目录下运行:

ng generate interface your_model_name --type=model
# or in models folder
ng generate interface models/your_model_name --type=model