【发布时间】:2014-09-23 18:55:19
【问题描述】:
假设我有一个非常大的企业应用程序,细分为几个解耦的子模块(不要与角度模块混淆)。
我不想在一个地方膨胀路由并希望那些独立的模块(非角度模块)拥有自己的角度和路由模块,否则我必须向这些子模块中的每一个广播路由通知。如果这些子模块可以拥有自己的路由侦听器或定义,则非常理想。
Angular 新手。
模块 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>
编辑: 当我第一次加载文档时,两个路由器都针对 /search/folios/:productId 执行 但是在单击列表项后,只有模块A的路由器执行。
【问题讨论】:
-
ui-router 看起来很有希望,有多个路由/视图,我也会研究一下
标签: javascript angularjs angularjs-routing