Использование $ state.go () с onResume ()

0

Я пытаюсь перенаправить на мою страницу входа каждый раз, когда мое приложение поступает из фона на передний план, но я получаю эту ошибку: Uncaught TypeError: $ state.go не является функцией

Поэтому я, очевидно, сделал что-то не так, но я не могу понять.

Вот некоторые части моего кода в моем приложении app.js:

// Ionic Starter App
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider

  .state('resetLogin', {
    url: '/resetLogin',
    templateUrl: 'templates/resetLogin.html',
    controller: 'ResetLoginCtrl'
  })
  .state('login', {
    url: '/login',
    templateUrl: 'templates/login.html',
    controller: 'LoginCtrl'
  })
    .state('tab', {
    url: '/tab',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  })
    .state('tab.account', {
    url: '/account',
    views: {
      'tab-account': {
        templateUrl: 'templates/tab-account.html',
        controller: 'AccountCtrl'
      }
    }
  });

  $urlRouterProvider.otherwise('/login');

})

.run(function($ionicPlatform, $state) {
  $ionicPlatform.ready(function() {
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if (window.StatusBar) {
      StatusBar.styleDefault();
    }
  });

  function onDeviceReady() {
  }
});

document.addEventListener("resume", onResume, false);
    function onResume($state){
      $state.go('login');
    }
  • 0
    где твой контроллер
Теги:
ionic-framework
cordova

1 ответ

2
Лучший ответ

Juste переместите вашу функцию в прогоне блока и удалите $ state в onResume. Только угловая функция инъектируется. Фактически, вы, вероятно, получаете объект события в своем случае, но, конечно, не состояние $.

.run(function($ionicPlatform, $state) {
  $ionicPlatform.ready(function() {
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if (window.StatusBar) {
      StatusBar.styleDefault();
    }
  });

  function onDeviceReady() {
  }
   document.addEventListener("resume", onResume, false);
    function onResume(){
      $state.go('login');
    }
});
  • 0
    Спасибо ! Я думал, что пробовал это раньше, но я должен был сделать это неправильно, так как это не сработало. Теперь это хорошо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню