2014-12-05 3 views
1

В Sample Angular AppКак Угловой маршрутизатор знает, куда направлять URL-адреса, когда они похоронены в зависимостях?

К примеру, в одном obscure module of the app, there is a route как:

$routeProvider.when('/projectsinfo', { 
    templateUrl:'projectsinfo/list.tpl.html', 
    controller:'ProjectsInfoListCtrl', 
    resolve:{ 
     projects:['Projects', function(Projects){ 
     return Projects.all(); 
     }] 
    } 
    }); 

У меня есть два вопроса по этому поводу:

1) Как Угловой найти этот путь и положить его вместе с реестром других путей? Это потому, что используется тот же $routeProvider? 2) Является ли это плохой практикой кодирования, т. Е. Ввод маршрутов в разные модули? Есть ли преимущества для этого?

Я бы с удовольствием, если бы кто-нибудь мог просветить меня. Я только начинаю с Angular.

ответ

2

Несмотря на то, что провайдер (например, routeProvider) может использоваться в нескольких модулях (и эти модули зависят друг от друга), поставщик создается только один раз, что делает его одиночным. Поэтому в каждом модуле вы имеете дело с одним и тем же провайдером. Поскольку каждый модуль имеет свою собственную фазу конфигурации, вы можете настроить его снова, и в этом случае регистрация заканчивается в том же реестре (внутренне).

Итак, чтобы ответить на ваш первый вопрос: да, это потому, что используется тот же самый $ routeProvider.

Чтобы ответить на ваш второй вопрос: я немного не решаюсь сказать, что это хорошая практика кодирования, потому что я не видел этот шаблон нигде. Но в этом есть определенный потенциал, потому что вы можете создавать модули, содержащие набор функциональных возможностей, включая страницы. Имеет смысл определять маршруты для этого набора функциональных возможностей внутри этого модуля, поэтому все знания об этом живут внутри этого модуля.

Недостатком является то, что URL-адреса могут быть перезаписаны в других модулях, которые загружаются позже, особенно основным приложением, которое принимает эти модули в качестве зависимостей.

angular.module('app',['a','b']); 

Так что, если в модуле «а» у вас есть «/ дом» определяется как маршрут, а также в «приложение», которая определена в «приложение» будет перезаписывать один, определенный в «а».