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

相關文章
相關標籤/搜索