我们知道angular服务层有三种创建方式,那么这三种创建方式有什么语法上的区别呢;
一,provider方式;
provider方式创建服务,provider中的方法需要通过对象的方法对外暴露接口;即用this.$get;
eg:
(function(){
angular.module("demo",[ ]);
.provider("provider",function(){
this.$get(function(){
var getmore=function(){
return "hello";
}
return {
getword:getmore
}
}
}
});
在控制器里注册使用;
.controller("oneCtr",function($scope,oneProvider){
console.log(oneProvider.getmore)
})
二,factory创建服务;
factory创建服务不需要this.$get;可以直接暴露接口;
eg:
(function(){
angular.module("demo",[ ]);
.factory("oneFactory",function(){
var getmore=function(){
return "hello";
}
return {
getword:getmore
}
}
});
在控制器里注册使用;
.controller("oneCtr",function($scope,oneFactory){
console.log(oneFactory.getmore)
})
三,service创建服务;
service创建服务直接用this,不需要暴露接口;是日常开发中最推荐也是最常用的方法;
eg:
(function(){
angular.module("demo",[ ]);
.service("oneSercive",function(){
this.getmore=function(){
return "hello";
}
}
});
在控制器里注册使用;.controller("oneCtr",function($scope,oneService){
console.log(oneService.getmore)
});