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方法定义服务'
    }
 
});

angularjs 自定义服务的三种方式的更多相关文章

  1. angularJS自定义服务的几种方式

    在angularJS中定义服务共有四种常见的方式:factory,service,provider,constant,value 使用形式的不同: 1)factory以返回对象的形式定义服务: mya ...

  2. 【转】SpringBoot启动服务的三种方式

    1.IDEA启动 2.命令行启动 首先将命令行位置跳转到当前项目的根目录下,再输入“mvn spring-boot:run”命令,初次操作maven需要下载插件等待几分钟 3.命令行编译为jar启动 ...

  3. php中连接tcp服务的三种方式

    首先需要现有一个 tcp 服务,我们使用 php中的 socket 系列函数实现 <?php //创建socket套接字 $socket = socket_create(AF_INET, SOC ...

  4. 深究AngularJS——自定义服务详解(factory、service、provider)

    前言 3种创建自定义服务的方式.  Factory Service Provider 大家应该知道,AngularJS是后台人员在工作之余发明的,他主要应用了后台早就存在的分层思想.所以我们得了解下分 ...

  5. 【朝花夕拾】Android自定义View篇之(四)自定义View的三种实现方式及自定义属性使用介绍

    前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10979161.html],谢谢! 尽管Android系统提供了不少控件,但是有很多酷炫效果仍然 ...

  6. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  7. [转]Linux中设置服务自启动的三种方式

    from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统 ...

  8. Linux中设置服务自启动的三种方式,ln -s 建立启动软连接

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务(http://www.0830120.com) 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立 ...

  9. (转)Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

随机推荐

  1. A Game(洛谷 2734)

    题目背景 有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的任意一端取一个数,取数后该数字被去掉并累加到本玩家的得分中 ...

  2. ajax循环读取json多维数组

    test.json: { "one": [ { "name": "黑默丁格", "car": "鲁LLL608 ...

  3. 模拟提交API数据Pyqt版

    其实这个模拟提交数据之前已经写过篇: Python requests模拟登录 因为现在在做的项目中需要一个debug请求调试API,用PHP的CURL写了一个,又因Pyqt更能直观灵活的显示请求的参数 ...

  4. Python 爬取网站资源文件

    爬虫原理: 以下来自知乎解释 首先你要明白爬虫怎样工作.想象你是一只蜘蛛,现在你被放到了互联“网”上.那么,你需要把所有的网页都看一遍.怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页 ...

  5. 解决 U 盘写保护的问题

    插了一个 U 盘,想格式化或者创建文件,但是提示我 U 盘是写保护的. 解决方法如下: Open a command prompt type DISKPART press type LIST VOLU ...

  6. postgresql数据库

    新建一个虚拟机,在本地跑程序,连虚拟机数据库报错: no pg_hba.conf entry for host "192.168.1.4" Google下,发现是要修改postgr ...

  7. 1.3 jQuery基础

    使用jQuery需要引用jQuery文件(页面引用多个js文件时jQuery在最前面) <script src="jquery-1.11.2.min.js"></ ...

  8. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

    行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 2012-04-25 16:29:04| 分类: 学习 |字号 订阅 在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE ...

  9. $event 获取对象

    用Angular给元素添加事件时获取可以用 $event 传递当前触发的事件的元素对象 页面上可以这样写 <img ng-src="" alt="" ng ...

  10. bash快捷键

    https://linuxtoy.org/archives/bash-shortcuts.html 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按 ...