Каков наилучший способ остановить пользователя от перехода в состояние, если для этого состояния нет данных? Мне нужно перенаправить пользователя на /featured, если в одном из других состояний нет данных.
Я думал, что могу сначала проверить контроллер на наличие данных, а затем перенаправить с помощью $state.go, если данные были нулевыми, но я не могу найти пример того, как получить доступ к данным в контроллере внутри события onEnter.
Я думаю, что пример кода должен подвести итог:
fseControllers.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/featured");
$stateProvider
.state('featured', {
url: "/featured",
templateUrl: "featured-template"
})
.state('friends', {
url: "/friends",
templateUrl: "friends-template",
controller: 'FseController',
onEnter: function(){
// Here I want to redirect to /featured if no data in controller
}
})
.state('stories', {
url: "/stories",
templateUrl: "stories-template"
})
.state('events', {
url: "/events",
templateUrl: "events-template"
})
})