2015-07-21 140 views
1

我有以下幾點:角UI路由器:默認嵌套視圖

.state('account', { 
    abstract: true, 
    url: '/account', 
    templateUrl: 'pages/templates/account.html', 
    controller: 'account' 
}) 

.state('account.settings', { 
    url: '/settings', 
    templateUrl: 'pages/templates/account.settings.html', 
    controller: 'account.settings' 
}) 

.state('account.user', { 
    url: '/user', 
    templateUrl: 'pages/templates/account.user.html', 
    controller: 'account.user' 
}) 

我想使它所以如果我去:

/account => it goes to /account/settings 
/account/setting => goes to /account/settings 
/account/user => goes to /account/user 

基本上使account.settings默認。

有沒有辦法做到這一點?


很大的原因我想這樣做,是因爲以下

(也許有人有更好的解決辦法的建議),我有一個鏈接,像這樣的:

​​

無論嵌套視圖(設置或用戶)如何,我都希望它具有active類。但我想要這個鏈接始終將用戶發送到account.settings

如果有人能幫助我,它將不勝感激。

+0

可以在路線上添加解析方法。 'resolve:function(){$ location.path(「/ account/settings」); }'或類似的東西。 –

回答

0

嘗試:

.state('account', { 
    abstract: true, 
    url: '/account', 
    templateUrl: 'pages/templates/account.html', 
    controller: 'account' 
}) 
.state('account.settings', { 
    url: '', 
    templateUrl: 'pages/templates/account.settings.html', 
    controller: 'account.settings' 
}) 

.state('account.settings2', { 
    url: '/settings', 
    templateUrl: 'pages/templates/account.settings.html', 
    controller: 'account.settings' 
}) 

.state('account.user', { 
    url: '/user', 
    templateUrl: 'pages/templates/account.user.html', 
    controller: 'account.user' 
}) 

或者從抽象重定向到具體狀態...的代碼片段刪除指定的「賬戶」控制器參考,但在段代碼可以被添加到控制器如果需要:

.state('account', { 
    abstract: true, 
    url: '/account', 
    templateUrl: 'pages/templates/account.html', 
    controller: ['$scope', '$state', 
     function($scope, $state) { 
      $state.go('account.settings'); 
     }], 
}) 
+0

感謝您的解決方法!我仍然希望URL重定向到'/ account/settings';我不確定這會做到這一點。 – bryan

+0

誤解了你想要做的事......我編輯了我的迴應,以顯示如何從抽象重定向到具體狀態的示例。 – GPicazo