Angularjs自定义服务~使用Module的provider方法

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Angularjs自定义服务~使用Module的provider方法</title>
      <!--  如同指令一样,系统内置的服务以$开头,自己定义一个服务。定义服务的方式有如下几种:
         · 使用Module的factory方法
         · 使用Module的service方法
         · 使用系统内置的$provide服务    
         
          3. provider:只有provder是能传 .config() 函数的 service。
                  如果想在 service 对象启用之前,先进行模块范围的配置,那就应该选择 provider。
                  需要注意的是:在config函数里注入provider时,名字应该是:自定义provider+Provider。 -->
      <script type="text/javascript" src="../js/angular.js" ></script>
      <script>
         var app = angular.module("myApp",[]);
         
         //(1)在config函数里注入provider时,名字应该是:自定义provider+Provider,如下:
         app.config(function(myProviderProvider){
            alert("自定义provider服务 执行顺序:1  先在config函数里注入自定义provider服务名称,可以设置属性值");
            myProviderProvider.setAge(43);    //在config函数里设置属性值
         });
         
         // 在当前应用程序app自定义服务对象:myProvider
         app.provider("myProvider",function(){
            var age;  
            //(2)自定义属性以函数传参的形式添加到this对象上
            this.setAge = function(newAge){    
               age = newAge;
               alert("自定义provider服务 执行顺序:2   再把自定义属性以函数传参的形式添加到this对象上");
            }
            
            //使用$get 发送提交数据,Provider提供了一个factory方法get(),它用于返回value值、service或factory服务数据
            this.$get = function(){
               //自定义对象,声明属性及其值,把先前定义的变量值赋给当前对象变量,最后返回新的对象
               var star = {};
               star.name = "吴京";
               star.starAge = age;
               return star;
            }
         });       
         
         //(3)在控制器myCtrl的作用域中调用自定义服务myProvider中数据
         app.controller("myCtrl",function($scope,myProvider){
            alert("自定义provider服务 执行顺序:3  最后在控制器myCtrl的作用域中调用自定义服务myProvider中数据");
            $scope.name = myProvider.name;
            $scope.starAge = myProvider.starAge;
         });
      </script>
   </head>
   
   <body ng-app="myApp" ng-controller="myCtrl">
      <p>偶像实力派:{{name}}  年龄:{{starAge}}</p>
   </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值