Php 检查localstorage值并在state.go中传递参数
我已经创建了一个ionic应用程序,它将在用户成功登录时设置令牌值。然后,它将使用$state.go将用户重定向到另一个选项卡“tab.scan” 当用户单击导航栏上的“tab.details”选项卡时,它会将用户重定向到“tab.details”,而不传递任何参数 但是,“详细信息”页面无法获取存储令牌的值。 我该怎么做呢 当url是Php 检查localstorage值并在state.go中传递参数,php,android,angularjs,cordova,ionic-framework,Php,Android,Angularjs,Cordova,Ionic Framework,我已经创建了一个ionic应用程序,它将在用户成功登录时设置令牌值。然后,它将使用$state.go将用户重定向到另一个选项卡“tab.scan” 当用户单击导航栏上的“tab.details”选项卡时,它会将用户重定向到“tab.details”,而不传递任何参数 但是,“详细信息”页面无法获取存储令牌的值。 我该怎么做呢 当url是url:'/details'而不是url:'/details/:store\u id/:invoice\u id'时,它可以正常工作 登录代码 .controll
url:'/details'
而不是url:'/details/:store\u id/:invoice\u id'
时,它可以正常工作
登录代码
.controller('LoginCtrl', function ($scope, LoginService, $ionicPopup, $state, $stateParams) {
$scope.data = {};
$scope.token = { token: "" };
$scope.login = function () {
LoginService.loginUser($scope.data.username, $scope.data.password).success(function (data) {
//Set login token
localStorage.setItem("token", $scope.data.username);
//Redirect the user to scan tab
$state.go('tab.scan', { store_id: $scope.data.store_id });
//Popup alert for welcome message
var alertPopup = $ionicPopup.alert({
title: 'Login Success!',
template: 'Welcome ' + localStorage.getItem("token") + '!'
});
}).error(function (data) {
//Failed login, popup error message
var alertPopup = $ionicPopup.alert({
title: 'Login Failed!',
template: 'Please check your credentials!'
});
});
}
})
标签代码
.state('tab.details', {
cache: false,
url: '/details/:store_id/:invoice_id',
views: {
'tab-details': {
templateUrl: 'templates/tab-details.php',
controller: 'DetailsCtrl'
}
}
})
详细控制器代码
.controller('DetailsController', function ($scope, $http, $state, $ionicPopup, $stateParams) {
$scope.token = localStorage.getItem("token");
console.log($scope.token);
if ($scope.token == "logOut") {
$state.go('login');
var alertPopup = $ionicPopup.alert({
title: 'Login Required!',
template: 'Please login to access.'
});
}
else {
}
})
$scope是相对于每个控制器的,除非登录是父状态$scope不会级联到子状态。您需要在可以从任何控制器调用的服务中设置令牌,或者您可以在$rootScope上设置令牌,以便它在任何地方都可用。是否要使用$rootScope将$scope.token更改为$rootScope.token