更新时间:2021年11月22日15时13分 来源:传智教育 浏览次数:
在AngularJS中,服务是一个可以在AngularJS应用中使用的函数或对象,是对公共功能代码的抽取。例如,多个控制器中出现了相同的代码,那么便可以把它提取出来,封装成一个服务。
因为服务能够达到代码复用的目的,所以建议将控制器、指令中的业务逻辑都封装到服务中去。服务的概念通常与依赖注入紧密相关,通过依赖注入的方式可以把服务注入模块、控制器和其他服务中。依赖注入要求对象是单例的,所以服务通常都是单例的,并且在需要的时候才会被$injector实例化。
AngularJS提供了如下几种创建服务的方式。
·使用provider()函数创建服务(提供者):使用一个具有$get()的构造函数定义服务,然后使用模块的provider()函数进行登记,返回服务实例。
理解依赖注入需要注意几个关键问题,具体如下。
·谁依赖于谁:用户对象依赖于IoC容器。
·为什么需要依赖:用户对象需要IoC容器来提供自己需要的外部资源。
·谁注入谁:IoC容器向用户对象注入用户对象所依赖的对象。
·注入了什么内容:注入用户对象所需要的外部资源。
在依赖注入中,被注入的对象都是单例对象,创建一个对象后便可以在程序中一直使用它。