首页 > 代码库 > angular service provider

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  路由列表。

 

angular service provider