Дефиниция на разпределен маршрут в AngularJS

Като цяло знам, че дефинициите на маршрути в 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 и искам да регистрирам маршрути, където са необходими. Например, ако имам профилен модул, искам да регистрирам маршрута си от там. Същото важи и за контактния модул. Тази централизация ме побърква. Пропускам ли нещо тук или има някакво добро решение за моя проблем?


person Leo Selig    schedule 28.07.2013    source източник
comment
@Stewie Прав си - не намерих този   -  person Leo Selig    schedule 05.08.2013


Отговори (2)


Можете просто да разпределите конфигурацията на маршрута във вашите модули. Единственото нещо, което трябва да направите, е да регистрирате всички модули във вашия "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" });
  });
person N0rdl1cht    schedule 29.07.2013
comment
Това просто има смисъл - благодаря! - person Leo Selig; 03.08.2013

Не е нужно да правите конфигурацията на $routeProvider на едно място. Добавете дефиниции на маршрути, когато възникне необходимост, т.е. когато знаете, че ще използвате например модула на профила, можете да добавите клаузата .when(), която съответства на неговия маршрут.

person Thalis K.    schedule 28.07.2013