Определение распределенного маршрута в 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)


Вы можете просто распределить конфигурацию маршрута по своим модулям. Единственное, что вы должны сделать, это зарегистрировать все модули в вашем "приложении"-модуле.

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