2016-08-24 58 views
0

我採用了棱角分明的UI路由器,使我的應用程序通過路由組織的,但我有點困惑。因爲我知道我必須在模塊中添加'ui-router'dependencie才能使用$ stateProvider。但即使我不添加'ui-router'dependencie,它運行良好。

我知道角服務是單獨的對象,所以如果我加上「UI路由器」 dependencie只有一次。我可以在任何模塊中使用$ stateProvider服務嗎?

下面的代碼是在我的應用程序中定義的角碼。

angular.module('app', ['ui-router','app.pages']); 

angular.module('app.pages', ['app.pages.core']); 


angular.module('app.pages.core',[]) 
    .config(function ($stateProvider, $urlRouterProvider) { 

    $stateProvider 
     .state('common.default', { 
      abstract: true, 
      views: { 
       header: { 
        templateUrl: '/public/app/common/components/header/header.html', 
        controller: 'headerController' 

       }, 
       content: { 
        template: '<div ui-view></div>' 
       } 
      } 
     }) 
     .state('common.default.core', { 
      url: "/goongles/", 
      templateUrl: "/public/app/pages/core.html", 
      controller: 'coreController' 
     }); 
}); 

視圖代碼

<div ui-view="header"></div> 
<div ui-view="content" class ='view ng-scope openm'></div> 

請給我任何的想法。謝謝

回答

1

把它想象成一棵樹。樹的根是您在ng-app指令中設置的任何模塊。當Angular引導時,它從那裏開始,並加載所有模塊組件及其依賴項的組件。引導完成後,生命週期會繼續(創建常量,然後提供程序,然後運行配置塊等)。

由於在某處你的應用程序,你必須依賴於ui-router,它所有的服務引導後推出。無論是

,你不應該依賴於你的模塊工作。如果您要在另一個不依賴於ui-router的應用程序中使用app.pages.core模塊,那麼它將不起作用。

1

當你創建一個角模塊,即使你已經指定了另一個模塊在相同的依賴始終指定該模塊中使用的依賴關係。

記住,每個模塊應該是自給自足的,沒有與他人模塊依賴關係是完全可重用應該工作。

所以,正確地回答你的問題..是的,你可以在任何模塊中使用$stateProvider,但增加在他們每個人的UI路由器的依賴。