2016-10-08 4 views
0

Am пытается пользователю маршрута в определенное состояние, когда угловой старт, но это не идет войти, когда, если это правда, а она идет по умолчанию routStateуглового event.preventDefault() на бег Methode

.run(function ($ionicPlatform, $rootScope, $state) { 

var authToken = window.localStorage.getItem('authToken') 
var shouldChangePassword=window.localStorage.getItem('shouldChangePassword') 
if (authToken == 'undefined' || shouldChangePassword == 'true') { 
    event.preventDefault(); 
    $state.go('login'); 

    return; 
} 
.config(
//my routes 

.state('login', { 
      url: '/login', 
      templateUrl: 'templates/account_login.html', 
      controller: 'loginCtrl', 
     }) 

$urlRouterProvider.otherwise('/tab/category'); 
) 

как я могу перенаправить для входа и остановить приложение от перехода маршрута по умолчанию

+0

Вы проверили, соответствует ли условие в блоке if истинному? – Ladmerc

+0

Да, условие истинно, я проверил его с помощью инструментов dev open, он даже ударил $ ​​state.go ('login') – Arash

+0

Он попадает в $ state.go ('login')? Я думал, это то, что ты хотел? – Ladmerc

ответ

0

вы можете попробовать закреплять в UI-router's $stateChangeStart государственном событие изменения:

.run(function ($ionicPlatform, $rootScope, $state) { 

    $rootScope.$on('$stateChangeStart', function (event) { 
     var authToken = window.localStorage.getItem('authToken'); 
     var shouldChangePassword=window.localStorage.getItem('shouldChangePassword'); 
     if (!authToken || shouldChangePassword) { 
      event.preventDefault(); 
      $state.go('login'); 
     } 
    }); 

Но вы могли бы рассмотреть двигаетесь g authToken и shouldChangePassword к отдельной службе и прочитать/установить значение из/в эту службу вместо чтения из localstorage для каждого изменения состояния.

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