我在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;
});
有谁可以解释这种行为?