AngularJS Route - пользовательская проверка, затем проверка других маршрутов

Скажем, у меня есть маршрут типа "/: отдел", где отделом могут быть только книги, музыка и т. Д., Во-первых, как мне применить это ограничение до выбора контроллера / шаблона, а затем, если он недействителен, как его использовать? проверить другие маршруты в таблице? В противном случае, например, / about не будет действительным.

Два других компонента выбора подходящего контроллера и шаблона, которые я понимаю, это просто вопрос использования функций для обоих, которые возвращают пути, построенные из $ routeParams.

1 ответ

Почему вы не можете сделать что-то вроде этого:

Предположим, ваш маршрут такой:

.when('get/:department, {
   templateUrl: 'Your template url',
   controller: 'controller'
});

И в вашем контроллере:

app.controller('controller', function ($location, $routeParams){
    if($routeParams.department!=='books' || $routeParams.department!=='music' || .....) {
       $location.path('invalid route');
    } else {
   // Your controller body
    }
});
Другие вопросы по тегам