Javascript 将$state.go()与onResume()一起使用

Javascript 将$state.go()与onResume()一起使用,javascript,angularjs,cordova,ionic-framework,Javascript,Angularjs,Cordova,Ionic Framework,每次我的应用程序从后台转到前台时,我都试图重定向到我的登录页面,但我遇到了以下错误: 未捕获类型错误:$state.go不是函数 很明显我做错了什么,但我不明白 下面是我在我的app.js中的部分代码: // Ionic Starter App angular.module('starter', ['ionic', 'starter.controllers', 'starter.services']) .config(function($stateProvider, $urlRouterProv

每次我的应用程序从后台转到前台时,我都试图重定向到我的登录页面,但我遇到了以下错误: 未捕获类型错误:$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');
    }

只需在块运行中移动函数,并在onResume中删除$state。 只有角函数是可注射的。事实上,在您的案例中可能会得到一个事件对象,但肯定不是$state

.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');
    }
});

只需在块运行中移动函数,并在onResume中删除$state。 只有角函数是可注射的。事实上,在您的案例中可能会得到一个事件对象,但肯定不是$state

.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');
    }
});

你的控制员在哪你的控制员在哪谢谢!我想我以前试过这个,但我不得不用错误的方法,因为它不起作用。现在好了:)谢谢!我想我以前试过这个,但我不得不用错误的方法,因为它不起作用。现在好了:)