在angularjs中我们使用服务来将一些公共的实体对象封装在一个地方,让我们在单页应用的其他其他控制器、指令中进行使用,把一些公共的实例封装到公共服务上面
我们可以使用service、factory或者是provider来实现
这三者之间的区别在于
service实现的实例要在其他的控制器、指令中进行调用里面的方法的话,我们需要将对外开放的方法挂到this上面,如:
app.service("newService",function(){
this.call = function(){
console.log(1111);
}
});
而,factory要实现这种效果的话,需要在里面实现一个实例对象,如:
app.factory("test",function(){
var test = {};
test.call = function(){
console.log(111);
}
return test;
});
provider实现的服务,是三者中唯一一个可以在应用配置的时候进行调用的服务,即可以在app.config里面进行调用,而且,只能在$get返回的方法才能被外部调用,如:
app.provider("test",function(){
this.$get = function(){
return {
call:function(){
console.log(1111);
}
}
}
});