首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular cli在一个步骤中生成服务并包括提供者

Angular cli在一个步骤中生成服务并包括提供者
EN

Stack Overflow用户
提问于 2017-03-12 22:44:49
回答 9查看 146K关注 0票数 67

可以使用angular cli生成服务并将其添加为app.module.ts中的服务提供者,只需一步,或者使用ng g命令中的特殊选项?

当执行时:

代码语言:javascript
复制
$ ng g service services/backendApi
installing service
  create src/app/services/backend-api.service.spec.ts
  create src/app/services/backend-api.service.ts
  WARNING Service is generated but not provided, it must be provided to be used

在它旁边(根据警告消息),我通常使用文本编辑器将它添加到app.module.ts上的provider部分:

代码语言:javascript
复制
@NgModule({
  declarations: [
    AppComponent,
    ...
  ],
  imports: [
    ....
  ],
  providers: [BackendApiService],
  bootstrap: [AppComponent]
})

有可能只需一步就可以实现自动化吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-03-13 20:01:43

实际上,可以在创建服务时提供服务(或防护,因为这也需要提供)。

命令如下所示...

ng g s services/backendApi --module=app.module

编辑

也可以提供给一个功能模块,你也必须给它提供你想要的模块的路径。

ng g s services/backendApi --module=services/services.module

票数 113
EN

Stack Overflow用户

发布于 2018-05-18 15:48:45

Angular 6+单例服务

Angular 6及更高版本的单例服务的recommended approach为:

代码语言:javascript
复制
import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class UserService {
}

实际上,CLI --module开关用于在app级别注册服务的doesn't even exist any more,因为它不再需要修改app.module.ts

这将创建上述代码,而不需要指定模块。

代码语言:javascript
复制
ng g s services/user

因此,如果你不想让你的服务成为单例(),你必须自己删除providedIn代码--然后手动将它添加到组件或延迟加载模块的providers中。看起来当前没有切换到不生成providedIn: 'root'部件,所以您需要手动删除它。

票数 62
EN

Stack Overflow用户

发布于 2017-12-14 06:33:02

指定路径

代码语言:javascript
复制
--app
  --one
    one.module.ts
    --services

  --two
    two.module.ts
    --services

使用模块ONE中的新文件夹创建服务

代码语言:javascript
复制
ng g service one/services/myNewServiceFolderName/serviceOne --module one/one

--one
  one.module.ts // service imported and added to providers.
  --services
    --myNewServiceFolderName
      serviceOne.service.ts
      serviceOne.service.spec.ts
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42748773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档