关于  angular service factory  provider 方面有很多,我也来写一篇加深下印象

provider 是一切方法的基础,所以功能也最强,provider 用来定义一个可以被注入的服务,其实就是一个依赖注入的模块。

已ng-route 为例

var ngRouteModule = angular.module('ngRoute', ['ng']). provider('$route', $RouteProvider);

等价  AngularJS在模块对象上直接暴露了provider方法

    ngRouteModule.config(["$provide",function($provide) {
$provide.provider('$route', $RouteProvider);
}]) 

通过provider ,定义了$route服务。

通过provider 定义的服务会生成一个serviceProvider    例

$route服务$routeProvider, $location服务$locationProvider, $http服务$httpProvider ,$controller服务$controllerProvider

config阶段,只有provider能被注入(除了两个例外$provide和$injector)。此时可以通过serviceProvider 来设置服务中的一些私有属性 ,传一些参数,在服务模块调用之前。

例如:

路由配置

 app.config(['$routeProvider', function ($routeProvider) {

        $routeProvider.when('/view1', {
template:"this is v1 "
}); $routeProvider.when('/view2', { //详情页面
template:"<div class='view2'>this is view 2</div> "
});
$routeProvider.when('/view3', { //详情页面
templateUrl: 'all2.html'
});
}])

设置 $route  服务中的routes  路由列表。

最后 感谢主要参考文档       理解AngularJS中的依赖注入张小俊   http://www.html-js.com/article/1980,这篇文章读了很多遍每次都有新的理解

angular service provider的更多相关文章

  1. Angular service, 服务

      早上开车上班, 发现车快没油了, 于是拐进加油站. 有一辆出租车也在加油..   Angular service在一个应用里是以单例形式存在的. 这个单例的实例是由service factory( ...

  2. angularjs factory,service,provider 自定义服务的不同

    angularjs框架学了有一段时间了,感觉很好用.可以把angularjs的app理解成php的class,controller是控制器,而内置服务和自定义服务就可以理解成models了.angul ...

  3. AngularJS 讲解五, Factory ,Service , Provider

    一. 首先说一下,为什么要引入Factory,Service和Provider这三个Service层. 1.因为我们不应该在controller层写入大量的业务逻辑和持久化数据,controller层 ...

  4. Angular Service入门

    1.Angular内置service Angular为了方便开发者开发,本身提供了非常多的内置服务.可以通过https://docs.angularjs.org/api/ng/service查看Ang ...

  5. Service Provider Interface

    @(Java)[SPI] Service Provider Interface API的一种设计方法,一般用于一些服务提供给第三方实现或者扩展,可以增强框架的扩展或者替换一些组件. 结构 Servic ...

  6. Introduction to the Service Provider Interfaces--官方文档

    地址:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html What Are Services? Services are unit ...

  7. SOA Integration Repository Error:Service Provider Access is not available.

    在Oracle EBS Integration Repository中,打开一个Webservice,报了一个警告. 英文: Warning Service Provider Access is no ...

  8. laravel5如何创建service provider和facade

    laravel5如何创建service provider和facade laravel5创建一个facade,可以将某个service注册个门面,这样,使用的时候就不需要麻烦地use 了.文章用一个例 ...

  9. Service Provider模式

    参考文章:[http://blog.csdn.net/zl3450341/article/details/7227197] Service Interface:服务接口,将服务通过抽象统一声明,供客户 ...

随机推荐

  1. [Android Pro] PullToRefreshListView怎么设置各个item之间的间距

    reference to :  http://blog.csdn.net/qq_25943493/article/details/50923895 要设置第三方的上拉下载listView的item之间 ...

  2. c语言中->(间接成员运算符)的含义

    写于2016年12月12日. "->"称为间接成员运算符. 总体注解:这个运算符与指向结构(sturct)或联合(union)的指针一起使用,用来指明结构或联合的的成员.假设 ...

  3. 《利用Python进行数据分析: Python for Data Analysis 》学习随笔

    NoteBook of <Data Analysis with Python> 3.IPython基础 Tab自动补齐 变量名 变量方法 路径 解释 ?解释, ??显示函数源码 ?搜索命名 ...

  4. Tensorflow 实现稠密输入数据的逻辑回归二分类

    首先 实现一个尽可能少调用tf.nn模块儿的,自己手写相关的function     import tensorflow as tf import numpy as np import melt_da ...

  5. 朴素贝叶斯算法的python实现

    朴素贝叶斯 算法优缺点 优点:在数据较少的情况下依然有效,可以处理多类别问题 缺点:对输入数据的准备方式敏感 适用数据类型:标称型数据 算法思想: 朴素贝叶斯比如我们想判断一个邮件是不是垃圾邮件,那么 ...

  6. 常见开发需求之前端利器webstorm中的git和快捷键

    需求   前端开发中我们最常用的一般是webstorm.hbuilder和sublime,因为以前使用过一段时间eclipse所以我对webstorm的感觉比较良好,再加上以前使用hbuilder维护 ...

  7. [leetcode] 一些会的

    链表: 61. Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. ...

  8. java基础-泛型1

    浏览以下内容前,请点击并阅读 声明 泛型的使用能使类型名称作为类或者接口定义中的参数,就像一般的参数一样,使得定义的类型通用性更强. 泛型的优势: 编译具有严格的类型检查 java编译器对于泛型代码的 ...

  9. solr5.5 基于内置jetty配置 Ubuntu

    下载地址:http://archive.apache.org/dist/lucene/solr/ 在你的目录下直接解压 tar -zxvf xxxxxx.tgz 现在就可以直接开启solr了bin/s ...

  10. [NOIP2014]联合权值 题解

    题目大意: 有一棵树,求距离为2的点权的乘积的和以及最大值. 思路: 枚举每一个点,则与其相邻的点互为距离为2的点.该部分的最大值为点权最大的两个点的积,和为点的权值和的平方减去每个点的平方,这样每条 ...