angularJS中service、provice、factor区别

来源:互联网 发布:知乎 庞麦郎 编辑:程序博客网 时间:2024/06/05 06:01

provider, factory和service都是写AngularJS的service中常用的关键字,很容易混淆,写了一个简单的例子显示他们之间的区别:

分别用service,factory和provider定义三个service:

[html] view plain copy
print?
  1. var wtcModule = angular.module('wtc', []);  
  2.   
  3. wtcModule.service('testService',function(){  
  4.      this.lable = 'this is service';  
  5. });  
  6.   
  7. wtcModule.factory('testFactory', function () {  
  8.      return{  
  9.         lable: function(){  
  10.         return 'this is factory';  
  11.         }  
  12.     }  
  13. });  
  14.   
  15. wtcModule.provider('testProvider', function(){  
  16.     this.$get = function(){  
  17.         return 'this is provider';  
  18.     }  
  19. });  
在页面上留出三个占位符:

[html] view plain copy
print?
  1. <body ng-controller='outputCtrl'>  
  2.     <p>{{ output1 }}</p>  
  3.     <p>{{ output2 }}</p>  
  4.     <p>{{ output3 }}</p>  
  5. </body>  

写好outputCtrl:

[html] view plain copy
print?
  1. var wtcModule = angular.module('wtc');  
  2.   
  3. wtcModule.controller('outputCtrl', function($scope,testService, testFactory, testProvider){  
  4.     $scope.output1 = testService.lable;  
  5.     $scope.output2 = testFactory.lable();  
  6.     $scope.output3 = testProvider;  
  7. });  

最后页面的显示结果为;

说明:

注入service,相当于注入service定义时的function实例。

注入factory,相当于注入factory定义时的函数调用入口。

注入provider,相当于注入provider内$get定义的函数实例的调用。

转自:http://blog.csdn.net/u012841667/article/details/52749996

0 0
原创粉丝点击