我通常知道AngularJS中的路由定义如下:
var app = angular.module('app', []);
app.config(function ($routeProvider) {
$routeProvider.when("/", { templateUrl: "/partials/home.html" }).
when("/profile", { templateUrl: "/partials/profile.html" }).
when("/contact", { templateUrl: "/partials/contact.html" }).
otherwise({ redirectTo: '/' });
});
让我烦恼的是我想使用RequireJS模块化我的应用程序,并且我想在需要它们的地方注册路线。例如,如果我有一个配置文件模块,我想从那里注册我的路由。同样适用于触点模块。这种集中化让我发疯。我在这里错过了一点,还是我的问题有什么好的解决方案?
答案 0 :(得分:1)
您不必在一个地方完成$ routeProvider的配置。在需要时添加路由定义,即当您知道您将使用例如配置文件模块时,您可以添加与其路由对应的.when()子句。
答案 1 :(得分:1)
您只需在模块上分配路由配置即可。您必须做的唯一事情是,在“app”模块中注册所有模块。
angular.module('app', ['app.profile', 'app.contact'])
.config(function ($routeProvider) {
$routeProvider.when("/", { templateUrl: "/partials/home.html" })
.otherwise({ redirectTo: '/' });
});
angular.module('app.profile', [])
.config(function ($routeProvider) {
$routeProvider.when("/profile", { templateUrl: "/partials/profile.html" });
});
angular.module('app.contact', [])
.config(function ($routeProvider) {
$routeProvider.when("/contact", { templateUrl: "/partials/contact.html" });
});