Angular JS 自定义服务
定义服务的方式有如下几种:
1 变量方式(value Recipe)
2 工厂方式(factory Recipe)
3 服务方式(service Recipe)
4 供应者方式(provider Recipe)
5 常量方式(Constant Recipe)
6 特殊目的对象(Special Purpose Objects)
使用value来定义
var mainApp = angular.module("mainApp",[]);
mainApp.controller('MyController', ['clientId', function MyController(clientId) {
this.clientId = clientId;
}]);
使用factory方法
mainApp.factory("myService",[function(){
return {
name:"abc"
}
}]);
注:工厂方式 能够创建任何类型的服务,对象常量,方法,甚至一个自定义类型的实例。
使用service方法
app.service('myService',function(){
this.name = 'abc';
this.value = 'value';
});
使用provider来定义
mainApp.provider('myService', [function() {
return {
name:"abc"
}
}]);
注意:factory和service能注入内置服务,而provider是不能注入内置服务的
总结:
1 注入器通过使用 recipes 来创建两种类型的对象:服务和特殊目的对象。
2 一共有五种类型的 recipe 用于定义如何创建对象:变量、工厂、服务、供应者和常量。
3 工厂和服务是最常用的方式。两者仅有的不同是服务方式对于自定义类型对象效果更好,而工厂方式可以提供 JavaScript 基元和方法。
4 供应者方式是核心方式,所有其它方式都是它的语法糖。
5 供应者是最复杂的方式类型。除非你正在构建一段需要全局配置的可重用代码,否则不要使用它。
6 所有特殊目的对象都通过工厂方式来定义,除了控制器。