zoukankan      html  css  js  c++  java
  • angularjs 自定义服务的三种方式

    angularjs 中可通过三种($provider,$factory,$service)方式自定义服务,以下是不同的实现形式:

    // 定义module , module中注入$provide
    var starterApp = angular.module('starter.controllers', [],function($provide){

      // 第一种方式:使用provide的provider自定义服务
      $provide.provider('getUserInfoService', function(){

          this.$get = function(){

            var userInfo = [{
               'userName':'张三0',
               'userNick':'小花0',
               'age':25
              },{
               'userName':'张三1',
               'userNick':'小花1',
               'age':26
              }];

            return userInfo;

          }

      });

      $provide.factory('',function(){});


      $provide.service('',function(){});


    });

    //第二种方式 (module 的 config 方法中注入 $provide)
    starterApp.config(['$provide',function($provide) {

      // 使用provide的provider自定义服务(返回对象,字符串,服务,且必须通过$get方法返回)
      $provide.provider('getUserAddressService', function(){

          var _userAddress = '';

          var service = {};

          this.$get = function(){

             service.setAddress = function (userAddress){
                _userAddress = userAddress;
             }

             service.getAddress = function (){
              return _userAddress;
             }

             return service;
          }

      });

      // 使用provide的factory自定义服务(返回对象,服务,字符串)
       $provide.factory('serviceName1', ['$http', function($http){
           // var service = {};

           // service.getName = function (){
           //    return '张三';
           // }

           // return service;
           //
           return "啊飒飒大";
       }]);


       // 使用provide的service自定义服务(返回对象,服务)
       $provide.service('serviceName2', ['$http', function($http){

           // return {
           //    'name':'aa'
           // };

           //可直接通过this定义方法
           this.getName = function (){
              return '张三';
           }
           
       }])

     
    }]);

    //第三种方式(module 的 provider、service、factory 方法   推荐第三种)
    starterApp.provider('serviceName3',function(){

       this.$get = function (){

        return '直接通过module的provider方法定义服务';
       }
    });

    starterApp.factory('serviceName4',function(){

        return '直接通过module的factory方法定义服务';
    });

    starterApp.service('serviceName5',function(){

        return {
           'message':'直接通过module的service方法定义服务'
        }
     
    });

  • 相关阅读:
    Nginx模块fastcgi_cache的几个注意点 转
    CGI与FastCGI 转
    APUE--UNIX环境编程
    与 在记事本中的内容表现方式 原创
    Linux 内核使用的 GNU C 扩展
    GCC内嵌汇编
    linux下64位汇编的系统调用系列
    查看源码Vim+Cscope
    GCC 编绎选项 转
    Linux系统启动流程 图解
  • 原文地址:https://www.cnblogs.com/zijuan/p/5038189.html
Copyright © 2011-2022 走看看