2014-09-23 94 views
3

比方說,我有一個非常大的企業應用程序細分爲幾個分離的子模塊(不要與角度模塊混淆)。角度應用程序與他們自己的獨立路由器

我不想在一個地方膨脹路由,並希望那些獨立的模塊(非角度模塊)擁有自己的角度和路由模塊,否則我必須向這些子模塊中的每一個廣播路由通知。如果這些子模塊可以擁有自己的路由監聽器或定義,則爲理想選擇。

新角度。

模塊A

angular.module("navigation", ["ngRoute"]). 
    config(function($routeProvider, $locationProvider){self.config($routeProvider, $locationProvider)}). 
    controller("FoliosController", function($scope, $location){self.foliosController($scope, $location)}). 
    controller("NavigationController", function($scope, $location, $routeParams){self.navigationController($scope, $location, $routeParams)}); 

    angular.bootstrap(document.getElementById("navigation"), ["navigation"]); 

//config part 
config: function($routeProvider, $locationProvider) { 
    $routeProvider. 
    when("/", {templateUrl:"js/modules/search/view/partials/navigation.html"}). 
    when("/search/folios/:productId", {controller:"NavigationController", templateUrl:"js/modules/search/view/partials/navigation.html"}) 
}, 

模塊B

var result = angular.module("result", ["ngRoute"]). 
    config(function($routeProvider, $locationProvider){self.config($routeProvider, $locationProvider)}). 
    controller("FoliosResultsController", function($scope, $location) {self.foliosResultsController($scope, $location)}) 

    angular.bootstrap(document.getElementById("result"), ["result"]); 

//config part 
config: function($routeProvider, $locationProvider) { 
    $routeProvider. 
    when("/", {templateUrl:"js/modules/search/view/partials/result.html"}). 
    when("/search/folios/:productId", {controller:"NavigationController", templateUrl:"js/modules/search/view/partials/result.html"}) 
}, 

的模塊B的路由不工作,所以我不知道,如果我們可以在多個地方路由的聽衆。

HTML

<div id="navigation" data-ng-cloak> 
    <ul id="folios" data-ng-controller="FoliosController" class="nav nav-pills nav-stacked"> 
     <li data-ng-repeat="folio in folios" ng-class="{active: isActive('/search/folios/{{folio.productId}}')}"> 
      <a href="#/search/folios/{{folio.productId}}">{{folio.title}}</a> 
     </li> 
    </ul> 
    <ng-view></ng-view> 
</div> 

編輯: 當我第一次加載文檔,兩個路由器是針對/搜索/對開執行/:產品ID 但隨後在單擊列表中的項目,只有moduleA的路由執行。

+0

ui路由器似乎很有希望,多條路線/意見,我也會考慮,以及 – user2727195 2014-09-24 13:14:07

回答

0

破解它。

ui-router允許多個狀態& URL路由器提供程序用於單個頁面應用程序中的不同模塊(角度模塊)。

基本上我的每一個模塊(軟件模塊)都有自己的「角模塊」,它有自己的路由引擎/狀態機。

我的每個模塊(軟件模塊和它的角度模塊)都會接收並根據狀態定義響應散列更改。即使它們已經被定義,例如如果已經爲另一個模塊定義了「route1」,它也會作出響應。

原因:模塊性和解耦系統。很酷,這個項目現在更加有組織。

編輯: 這是一個不錯的辦法,以在多個地方的路由,有它的中心位置,廣播路徑更改爲所有模塊。