2013-12-11 64 views
2

AngularJs中有定義每個嵌套根狀態的回退的方法嗎?如何在AngularJS中以默認的回退狀態設置嵌套狀態

我有以下的用戶重定向到主頁時無與倫比的網址找到

$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目標網址

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