2013-12-11 1 views
2

Есть ли способ в AngularJs определить резерв на одно вложенное корневое состояние?Как установить вложенное состояние с резервным состоянием по умолчанию в AngularJS

У меня есть следующий перенаправить пользователь на главную страницу, когда непревзойденная URL найдена

$urlRouterProvider.otherwise("/operations/home"); 

но я пытаюсь установить запасной вариант каждого базовый типа при использовании вложенного состояния. как, например, , если я получаю /admin/some_thing_unknown я хотел бы перенаправить /admin/home и /client/some_thing_unknown редирект на /client/home

Я попытался использовать следующее, но не работает.

$urlRouterProvider 
    .when("/admin", '/admin/home') 
    .otherwise("/client/home"); 

это перенаправляет только /admin на /admin/home все остальное перенаправляется /client/home.

что это возможно? используя либо $stateProvider или $urlRouterProvider

С уважением, Киран

ответ

0

Вы можете передать функцию otherwise и добавить некоторую логику, чтобы выяснить URL назначения на основе URL, что была предпринята попытка

Try it out on JsFiddle

$routeProvider 
.when('/page1', { 
    controller: 'MyCtrl', 
    templateUrl: 'page1.html' 
}) 
.when('/page2', { 
    controller: 'MyCtrl', 
    templateUrl: 'page2.html' 
}) 
.otherwise({ 
    redirectTo: function(routeParams, path) { 
     //this would extract "page1" from "/page1/anything" 
     return path.split("/")[1]; 
    } 
}); 
+0

Спасибо! он работает, просто нужно было использовать $ urlRouterProvider вместо $ routeProvider, поскольку они не работают с $ stateProvider. – Kiran

Смежные вопросы