当前位置: 首页 > 知识库问答 >
问题:

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

甄文彬
2023-03-14

可以使用angular cli生成服务,并将其作为提供者添加到app.module中。一步到位还是在nggservice命令中使用特殊选项?

当执行:

$ 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的provider部分。ts使用文本编辑器:

@NgModule({
  declarations: [
    AppComponent,
    ...
  ],
  imports: [
    ....
  ],
  providers: [BackendApiService],
  bootstrap: [AppComponent]
})

有没有可能用一个简单的步骤来实现自动化?

共有3个答案

和丰羽
2023-03-14

看起来在Angular v11和更高版本中,我们不再有选项“s ”:

ng g service services/backendApi

或者像那样:

ng g service services/backendApi --flat --skipTests=true
越雨泽
2023-03-14

Angular 6及更高版本的单机服务的推荐方法是:

import { Injectable } from '@angular/core';

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

事实上,CLI<code>--module</code>开关甚至不再存在,因为它不需要修改<code>app.module。ts。

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

ng g s services/user

因此,如果您不希望您的服务是单一的,您必须自己删除中提供的代码,然后手动将其添加到 for a component或lazy loaded module。看起来当前没有开关不生成 providedIn:'root'部分,因此您需要手动删除它。

白禄
2023-03-14

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

命令如下…

ng-services/backendApi-module=app.module

编辑

也可以向功能模块提供,您必须为其提供您想要的模块的路径。

ng g s服务/BackendApi--模块=服务/services.module

 类似资料:
  • 简介 服务提供者是所有 Lumen 应用程序启动的中心所在。包括你自己的应用程序,以及所有的 Lumen 核心服务,都是通过服务提供者启动的。 但是,我们所说的「启动」指的是什么?一般而言,我们指的是 注册 事物,包括注册服务容器绑定、事件侦听器、中间件,甚至路由。服务提供者是设置你的应用程序的中心所在。 若你打开 Lumen 的 bootstrap/app.php 文件,你将会看到 $app->

  • 服务提供者是组件和CatLib联系的桥梁。同时也是CatLib启动的中心,所有的服务都是通过服务提供者定义的。 名词定义 组件 组件与CatLib没有任何关系,她们可以独立的运行在不同的框架中。 服务 是由服务提供者将由一个或者多个组件组合而成,并提供一组可以被开发者使用的接口。 容器 CatLib 依赖注入容器。 架构图 创建服务提供者 服务提供者是用来描述一个服务如何为使用者提供服务的,这些关

  • 在以太坊兼容的浏览器中使用web3.js时,web3.givenProvider属性将返回浏览器设置的原生 服务提供器,否则返回null。 调用: web3.givenProvider web3.eth.givenProvider web3.shh.givenProvider web3.bzz.givenProvider ... 返回值: Object: 浏览器设置好的提供器,或者null;

  • 我对Spring批处理框架相当陌生。 我在一个作业中创建了两个步骤(我们称之为步骤1和步骤2)。我想把它们并行运行。不仅如此,step2的IteamReader还应该使用step1的itemwriter。 我的第一个问题是,在Spring批量中是否有可能做到这一点?如果是,怎么做? 其次,如果这不可能,还有什么工作可以做呢? 谢了。

  • 美好的一天, 我试图将时间戳信息嵌入到pdf签名中,这样adobe会向我报告签名是时间戳。目前,我所做的就是Adobe报告“签名包括嵌入的时间戳,但无法验证”,当你查看日期/时间属性时,它会说“时间戳授权”不可用,“显示证书”变灰。 显然,我在构建PKCS#7消息时犯了错误。但我现在不知道该怎么办。有人能帮我描述一下我需要采取的步骤吗?这样我的签名就会有时间戳?或者建议一个能帮我找到问题的工具?