2015-10-25 2 views
1

У меня есть состояния упоминаются какДоступ текущего состояния с помощью Угловой интерфейса маршрутизатора

 .state('login', { 
      url: '/login', 
      templateUrl: 'views/login.html', 
      controller: '', 
      ncyBreadcrumb: {label: 'Home'}, 
      data: {freeRoute: true} 
     }) 
     .state('dashboard', { 
      url: '/', 
      templateUrl: 'views/login.html', 
      controller: '', 
      ncyBreadcrumb: {label: 'Dashboard'}, 
      data: {authenticatedRoute: true}, 
     }) 

Я хочу, чтобы запустить конфигурацию в случае, если страница обновляется, как этот

.run(function ($rootScope, $state, $stateParams, AUTH_EVENTS, dataService) { 
    if ($state.$current.data.authenticatedRoute == true) { 
     console.log('Authenticated Route.'); 
     if (dataService.isAuthenticated()) { 
      $rootScope.$broadcast(AUTH_EVENTS.alreadyAuthenticated); 
     } else { 
      $rootScope.$broadcast(AUTH_EVENTS.notAuthenticated); 
     } 
    } else { 
     console.log('Not Authenticated Route.'); 
    } 
    }); 

Но когда я попытался войти консоли на текущем состоянии мне это нравится ...

{"name":"","url":"^","views":null,"abstract":true} 

- Как бы получить текущее состояние. в контроллере? Я также пробовал console.log($state.$current); - Как я могу получить доступ и в представлениях, независимо от контроллера?

+1

То, как я хотел бы использовать это не просто .run(), но слушатель на '$ rootScope $ на ('$ stateChangeStart'' ... проверьте его, например, здесь http://stackoverflow.com/a/26702638/1679310 –

+0

Это было сделано с использованием $ stateChangeStart. Thanks – Sankalp

+0

Действительно? ;) Замечательно. Наслаждайтесь могучим UI-Router, сэр –

ответ

0

Вы должны быть в состоянии использовать console.log($state.current), чтобы иметь возможность видеть имя в настоящее время активного государства, родителей, URL и т.д.

Кстати, если вы хотите быстро увидеть эту деталь в отладочной консоли с помощью командной строки, вы можно использовать следующий вид команды в консоли отладки Dev инструмента:

$("html").injector().get("$state").current 
Смежные вопросы