2015-07-21 2 views
1

У меня есть следующий:Угловая Router 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 по умолчанию.

Есть ли способ сделать это?


Большая причина, я хочу сделать это из-за следующего (возможно, кто-то имеет лучшее предложение для работы вокруг)

У меня есть ссылка, как так:

<a ui-sref="account.settings" ui-sref-active="active">Account<a> 

Я бы хотел, чтобы у него был класс active, независимо от того, какое вложенное представление (настройки или пользователь). Но я хочу, чтобы эта ссылка всегда посылала пользователю account.settings.

Если бы кто-нибудь мог мне помочь, был бы признателен.

+0

Возможно, вам будет нужно добавить способ решения по данному маршруту. 'resolve: function() {$ location.path ("/account/settings "); } 'или что-то подобное. –

ответ

0

Try:

.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

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