Angular 有关服务注入的几个知识

1、当创建一个服务,ng默认为他生成一个注入信息

@Injectable({
  providedIn: 'root'
})

这代表该服务被根组件创建,只会实例化一次,是一个全局服务;

2、当带有默认注入信息的服务仅在惰性加载的特性模块中使用时,它就会自动绑定到这个模块,当这个模块被加载时才会实例化,这是ng自动做的优化工作;

3、特别声明某个服务依赖惰性加载的特性模块有2种方法:
①在特性模块里创建一个子模块作为服务的提供商,并在服务的注入信息处声明该子模块是服务的提供商

@Injectable({
  providedIn: ServiceModule
})

(此处若直接声明特性模块为提供商,在模块内的组件使用该服务时ng将提示循环依赖警告)

之后在特性模块中导入该子模块。

②在特性模块中声明自己是服务的提供商

 providers: [UserService]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 1,653评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 简要说明:本文主要摘录于 Angular 官网中 JavaScript 的设计风格指南。本风格指南介绍了提倡的约定...
    _仲夏_阅读 1,056评论 0 2
  • 2.1 我们的理念是:让别人为你服务 IoC是随着近年来轻量级容器(Lightweight Container)的...
    好好学习Sun阅读 2,745评论 0 11
  • 2017年的6月,在一个朋友的推荐下,我来到了万能语言课堂,一份简单的相信,为我打开了一扇智慧的大门,三天的课程下...
    晓玥靓阅读 276评论 0 0