加载页面之前的AngularJS自动登录
Posted
技术标签:
【中文标题】加载页面之前的AngularJS自动登录【英文标题】:AngularJS autologin before page is loaded 【发布时间】:2017-04-09 17:49:47 【问题描述】:我尝试在我的 AngularJS / ionic 移动应用中实现记住登录功能
问题: 登录页面始终在自动登录完成并开始过渡之前加载,因此您可以看到登录页面。
问题: JQM 中是否有类似 'pagebeforeshow' 的事件或其他直接加载 'home' 状态的方法?
我使用: 离子 1.3.1 角度 1.5.3 科尔多瓦 4.0.0
代码示例: 登录控制器:
function LoginController($scope, $http, $ionicModal, $state, $SessionStorage)
var vm = this;
activate();
function activate()
vm.staylogged = JSON.parse(localStorage.staylogged || null);
if(vm.staylogged)
vm.remember = vm.staylogged; //vm.remember: checkbox in login form
login();
else
// get some data from the server
function login()
if(vm.staylogged)
//get login informations from localStorage
$http(
method: 'POST',
url: vm.server +"?=GetLogin",
headers:
'Content-Type': 'text/xml; charset=\"utf-8\"'
,
data: soa
).then(function successCallback(response)
if(response.returnCode == 0)
localStorage.setItem('staylogged', JSON.stringify(vm.remember));
// safe login informations to local Storage for next use
$state.go('tabs.home');
, function errorCallback(response)
console.log(response);
);
【问题讨论】:
看看使用 ui-router 库中提供的解析 【参考方案1】:您可以按照以下方式进行-
在 app.js 中
.state('signin',
url: '/sign-in',
templateUrl: 'templates/views/login.html',
controller: 'LoginController',
resolve:
// Do your code here will execute before page render
)
【讨论】:
我尝试了解决方法,但目前您似乎无法更改状态,因为当前状态仍在初始化...我应该使用“超时”-stage-change 之类的东西吗还是有另一种可能性来决定应该加载哪个状态?以上是关于加载页面之前的AngularJS自动登录的主要内容,如果未能解决你的问题,请参考以下文章
使用存储的凭据自动登录 PhoneGap Onsen UI 应用程序