在services.js中定义并在controller.js中调用的Ionic Function不会被执行

时间:2015-05-27 13:10:00

标签: javascript angularjs node.js controller ionic

我在services.js中定义了这个服务,其功能非常简单:

.service('CheckLoginService', function ($q, $http){
  var LOCAL_TOKEN_KEY = 'yourTokenKey';
  var loadUser = '';

  function loadUserCredentials () {
  //loadUser = window.localStorage.getItem(LOCAL_TOKEN_KEY);
    loadUser = 'pippo';
  }

  return {
    loadUserCredentials: loadUser
  };

})

我从controller.js

中的此代码调用此函数
.controller('BeforeloginCtrl', function($state, $scope, $ionicPopup, CheckLoginService) {
    $scope.check = function() {
        var checkUser = CheckLoginService.loadUserCredentials();
        var alertPopup = $ionicPopup.alert({
          title: 'check!',
          template: checkUser
        });
        if(checkUser !== '') {
            $state.go('tab.dash');
        } else {
            $state.go('login');
        }
    }
})

控制器设置在app.js应用程序的第一页,但是当我模拟我的应用程序时,没有任何事情发生:无论checkUser的值是什么,它都不会路由到$state.go()中调用的任何页面。弹出窗口出现,所以我猜测函数loadUserCredentials()从未被调用过。

模拟器不会返回任何错误。

UPDATE :即使尝试直接在controller.js中执行代码,结果也一样:没有任何反应

.controller('BeforeloginCtrl', function($state, $scope, $ionicPopup, CheckLoginService) {
    function check() {
//      var checkUser = CheckLoginService.loadUserCredentials();
//      var checkUser = window.localStorage.getItem(LOCAL_TOKEN_KEY);
        var checkUser = '';
        var alertPopup = $ionicPopup.alert({
          title: 'check!',
          template: checkUser
        });
        if(checkUser != '') {
            $state.go('tab.dash');
        } else {
            $state.go('login');
        }
    }
    $scope.check = check;
});

有谁可以解释这种行为?

0 个答案:

没有答案