首先,看一看方法:
factory:
factory(name, $getFn);
service:
service(name, constructor);
再看看例子使用:
定义一个angular module
var module = angular.module(‘myapp‘, []);
使用service:
module.service(‘userService‘, function(){
this.users = [‘John‘, ‘James‘, ‘Jake‘];
});使用factory:
module.factory(‘userService‘, function(){
var fac = {};
fac.users = [‘John‘, ‘James‘, ‘Jake‘];
return fac;
});service 和 factory 定义了一个service object/function。它们都是singleton service object,可以被任意的controller、service、directive 使用。
看一看使用上的区别:
AngularJS 的 service:
module.service(‘MyService‘, function() {
this.method1 = function() {
//..
}
this.method2 = function() {
//..
}
});AngularJS 的 factory:
module.factory(‘MyService‘, function() {
var factory = {};
factory.method1 = function() {
//..
}
factory.method2 = function() {
//..
}
return factory;
});service 中使用this.methodName,而在 factory 中,创建一个 facotry object ,然后将 方法 assigned 给这个factory。
AngularJS Service vs Factory 总结(持续更新中...)
原文:http://my.oschina.net/pingjiangyetan/blog/416146