关于  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,这篇文章读了很多遍每次都有新的理解

最新文章

  1. 来玩Play框架07 静态文件
  2. 让产品有效迭代,前端A/B Testing的简单实现
  3. 从零自学Hadoop(04):Linux准备下
  4. Python for Informatics 第11章 正则表达式五(译)
  5. JS-DOM基础
  6. jQuery 正则选择器
  7. 错误:Implicit super constructor xx() is undefined for default constructor. Must define an explicit constructor
  8. http://highscalability.com/blog/2015/5/18/how-mysql-is-able-to-scale-to-200-million-qps-mysql-cluster.html
  9. Linux——常用命令详解
  10. hdoj 2899 Strange fuction【二分求解方程】
  11. LeetCode-Divdend two Integers
  12. 查看Linux下网卡状态或 是否连接
  13. Python中的isinstance函数
  14. YII缓存依赖的应用
  15. 【转】RAM 大全-DRAM, SRAM, SDRAM的关系与区别
  16. CentOS7操作系统参数优化
  17. Tomcat源码组织结构
  18. 实力封装:Unity打包AssetBundle(大结局)
  19. React-使用react-redux
  20. React篇-报错信息:warning: Can&#39;t call setState (or forceUpdate) on an unmounted component.

热门文章

  1. Windows phone 8.1布局控件
  2. ImageView属性
  3. python+selenium 简单尝试
  4. C# RFID windows 服务 网络协议方式
  5. TextView链接点击和长按冲突
  6. OneThink开发框架
  7. ThinkPHP的D方法和M方法的区别
  8. Python爬虫学习(1): urllib的使用
  9. PE530 : GCD of Divisors
  10. 洛谷 P1736 创意吃鱼法 Label:dp || 前缀和