服务 与 工厂
工厂和服务之间的区别就像功能和对象之间的区别一样
工厂供应商
给我们函数的返回值,即。您只需创建一个对象,向其添加属性,然后返回相同的对象。将该服务传递到控制器中后,该对象上的那些属性现在将在工厂中的该控制器中可用。(假设情景)
单例且仅创建一次
可重复使用的组件
工厂是在控制器之间进行通信(例如共享数据)的一种好方法。
可以使用其他依赖
通常在服务实例需要复杂的创建逻辑时使用
无法注入
.config()
功能。用于不可配置的服务
如果使用的是对象,则可以使用工厂提供程序。
句法:
module.factory('factoryName', function);
服务提供者
给我们一个函数(对象)的实例-您刚刚使用’new’关键字实例化了,您将在’this’中添加属性,该服务将返回’this’。当您将该服务传递给控制器时,这些属性现在可以通过您的服务在该控制器上使用“ this”上的内容。(假设情景)
单例且仅创建一次
可重复使用的组件
服务用于控制器之间的通信以共享数据
您可以使用
this
关键字将属性和功能添加到服务对象依赖项作为构造函数参数注入
用于简单的创建逻辑
无法注入
.config()
功能。如果您使用的是课程,则可以使用服务提供商
句法:
module.service(‘serviceName’, function);
样本演示
在下面的示例中,我定义了
MyService和
MyFactory。请注意,
.service我如何使用
this.methodname.In
创建服务方法,
.factory并创建了一个工厂对象并为其分配了方法。
AngularJS。服务
module.service('MyService', function() { this.method1 = function() { //..method1 logic } this.method2 = function() { //..method2 logic }});AngularJS .factory
module.factory('MyFactory', function() { var factory = {}; factory.method1 = function() { //..method1 logic } factory.method2 = function() { //..method2 logic } return factory;});


