博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Angular] 'providedIn' for service
阅读量:6720 次
发布时间:2019-06-25

本文共 1119 字,大约阅读时间需要 3 分钟。

There is now a new, recommended, way to register a provider, directly inside the @Injectable() decorator, using the new providedIn attribute. 

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

 

When you use 'root', your injectable will be registered as a singleton in the application, and you don’t need to add it to the providers of the root module. Similarly, if you use providedIn: UsersModule, the injectable is registered as a provider of the UsersModule without adding it to the providers of the module.

 

In the same spirit, you can now declare an InjectionToken and directly register it with providedIn and give it a factory:

export const baseUrl = new InjectionToken
('baseUrl', { providedIn: 'root', factory: () => 'http://localhost:8080/' });

 

Note that it also simplifies unit testing. We used to register the service in the providers of the testing module to be able to test it.

Before:

beforeEach(() => TestBed.configureTestingModule({  providers: [UserService]}));

Now, if the UserService uses providedIn: 'root':

After:

beforeEach(() => TestBed.configureTestingModule({}));

 

转载地址:http://qacmo.baihongyu.com/

你可能感兴趣的文章
CAS实现SSO单点登录原理
查看>>
Beyond Compare 移除使用期限制
查看>>
我的友情链接
查看>>
SCCM2007系列教程之八操作系统XP部署(4)
查看>>
docker certificate signed by unknown authority
查看>>
Quartz在Spring中如何动态配置时间
查看>>
css实现正方形
查看>>
高性能Socket服务器编程-01
查看>>
gentoo系统安装(详细)
查看>>
Spring Cloud(二)Consul 服务治理实现
查看>>
mysql备份还原(视图、存储过程)
查看>>
快速配置oralce11g安装环境脚本
查看>>
int.Parse
查看>>
光纤跳线
查看>>
day02:管道符、shell及环境变量
查看>>
php设计模式——适配器模式
查看>>
C#文件、文件夹操作
查看>>
MySQL编译安装加入service
查看>>
以rsync进行同步镜像备份
查看>>
热烈祝贺VMware View4.5荣获“2010年度最佳产品”大奖
查看>>