Существует a working example
Как обсуждалось в комментариях, мы можем использовать собственные, встроенные функции, приходя с UI-маршрутизатором. Один из них: $urlRouterProvider.deferIntercept(defer)
Отключает (или разрешает) откладывание перехвата изменения местоположения.
Если вы хотите настроить поведение синхронизации URL-адреса (например, если вы хотите отложить переход, но сохраните текущий URL-адрес), вызовите этот метод во время настройки. Затем во время выполнения вызовите $urlRouter.listen()
после того, как вы настроили свой собственный обработчик событий $locationChangeSuccess
.
I. шаг - выполнение СТОП
Таким образом, мы можем определить состояния в .config()
фазы
.config(['$stateProvider', '$urlRouterProvider','$locationProvider',
function ($stateProvider, $urlRouterProvider,$locationProvider) {
// States
$stateProvider
...
.state('parent', {
...
})
.state('parent.child', {
...
})
;
...
// here we say STOP
$urlRouterProvider.deferIntercept();
}
])
II. шаг - INIT, что необходимо в .run() - повторное включение исполнение
Это может быть какой-то наивный пример бега:
.run(['$urlRouter', '$timeout', '$state',
function($urlRouter, $timeout, $state) {
$timeout(function(){
// here we turn all on again...
$urlRouter.sync();
$urlRouter.listen();
// there could be some decision, driven by $http load
// we just use some state as default target
$state.go("parent.child");
}, 1000)
}]);
Se сделать ждать второй, а затем мы снова включить все выполнение и перенаправление на «parent.childd» ... но может быть любой другой, основанный на некотором решении сделано в .run()
фазы
Проверить это here
не будет $ urlRouterProvider.otherwise (функция ' ($ injecto r, $ location) {...} 'решение для вас? Подробнее об этом [$ urlRouterProvider] (http://angular-ui.github.io/ui-router/site/#/api/ui.router.router.$urlRouterProvider). И если вам нужно также **. Run() ** phase ... отложенное выполнение может быть решением http: // stackoverflow.com/questions/30455792/start-angular-js-route-segment-or-ui-router-after-all-translations-are-loaded –
Не могли бы вы использовать решение в $ routeProvider, а затем перенаправить на правильный маршрут – George
@ RadimKöhler Я проверю это и отчитаю, спасибо. –