angular service provider

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

 

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

已ng-route 为例java

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

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

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

 

经过provider ,定义了$route服务。ide

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

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

 

 

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

例如:htm

路由配置对象

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

相关文章
相关标签/搜索