angular service provider
关于 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的更多相关文章
- Angular service, 服务
早上开车上班, 发现车快没油了, 于是拐进加油站. 有一辆出租车也在加油.. Angular service在一个应用里是以单例形式存在的. 这个单例的实例是由service factory( ...
- angularjs factory,service,provider 自定义服务的不同
angularjs框架学了有一段时间了,感觉很好用.可以把angularjs的app理解成php的class,controller是控制器,而内置服务和自定义服务就可以理解成models了.angul ...
- AngularJS 讲解五, Factory ,Service , Provider
一. 首先说一下,为什么要引入Factory,Service和Provider这三个Service层. 1.因为我们不应该在controller层写入大量的业务逻辑和持久化数据,controller层 ...
- Angular Service入门
1.Angular内置service Angular为了方便开发者开发,本身提供了非常多的内置服务.可以通过https://docs.angularjs.org/api/ng/service查看Ang ...
- Service Provider Interface
@(Java)[SPI] Service Provider Interface API的一种设计方法,一般用于一些服务提供给第三方实现或者扩展,可以增强框架的扩展或者替换一些组件. 结构 Servic ...
- Introduction to the Service Provider Interfaces--官方文档
地址:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html What Are Services? Services are unit ...
- SOA Integration Repository Error:Service Provider Access is not available.
在Oracle EBS Integration Repository中,打开一个Webservice,报了一个警告. 英文: Warning Service Provider Access is no ...
- laravel5如何创建service provider和facade
laravel5如何创建service provider和facade laravel5创建一个facade,可以将某个service注册个门面,这样,使用的时候就不需要麻烦地use 了.文章用一个例 ...
- Service Provider模式
参考文章:[http://blog.csdn.net/zl3450341/article/details/7227197] Service Interface:服务接口,将服务通过抽象统一声明,供客户 ...
随机推荐
- mysql触发器,答题记录表同步教学跟踪(用户列表)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVQAAAOOCAIAAABgEw4AAAAgAElEQVR4nOy92VcT27r/zX+xLtflvt
- springBoot专题3---->springBoot与多数据源的配置
最近有点忙,更新有点慢.今天进来说说一说springBoot中如何配置多数据源. 第一,新建一个名为springBoot-mutidata的maven项目,完整的pom.xml配置如下: <?x ...
- iOS - 模拟器
模拟器分为ipad模拟器和iphone模拟器,尺寸都是固定的,就是320*480(iphone),640*960(iphone高清)1024*768(ipad),目前这个尺寸是不能调的.
- javaScript的function
一.函数的声明方式 1.普通的函数声明 function box(num1,num2){ return num1+num2; } 2.使用变量初始化函数 var box=function(num1,n ...
- tomcat 常用优化配置
1.精简Tomcat和配置文件 1.删除不需要的管理应用和帮助应用,提高tomcat安全性. # 删除webapps下所有文件 # rm –fr $CATALINA_HOME/webapps/* # ...
- LeetCode——Best Time to Buy and Sell Stock I (股票买卖时机问题1)
问题: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...
- MT4平台经验总结
https://www.mql5.com/zh/code/8462 https://www.mql5.com/zh/code/8074 https://www.mql5.com/zh/code/787 ...
- [转]netty对http协议解析原理
本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...
- hdu4135 容斥定理
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Django分析之导出为PDF文件
最近在公司一直忙着做exe安装包,以及为程序添加新功能,好久没有继续来写关于Django的东西了….难得这个周末清闲,来了解了解Django的一些小功能也是极好的了~ 那今天就来看看在Django的视 ...