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:"
this is view 2
" }); $routeProvider.when('/view3', { //详情页面 templateUrl: 'all2.html' }); }])

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

 

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

 

你可能感兴趣的:(angular service provider)