2016-11-25 75 views
0

我嘗試實現記住登錄功能我AngularJS /離子移動應用程序AngularJS自動登錄加載

問題: 自動登錄結束,轉變前的登錄頁面八方通裝開始,所以你可以看到登錄頁面片刻。

問題: 在JQM中是否有類似'pagebeforeshow'的事件或其他直接加載'home'狀態的方法?

我用: 離子1.3.1 角1.5.3 科爾多瓦4.0.0

代碼示例: 的LoginController:

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); 
     }); 
    } 
} 
+0

查看使用ui-router庫中的可用解決方案 – George

回答

0

您可以按以下方式做的 -

在app.js

.state('signin', { 
     url: '/sign-in', 
     templateUrl: 'templates/views/login.html', 
     controller: 'LoginController', 
     resolve: { 
       // Do your code here will execute before page render 
     } 
}) 
+0

我試過了解決方案,但看起來你不能在此刻改變狀態,因爲當前狀態仍在初始化......應該我使用類似「超時」 - 階段更改的內容,或者有另一種可能性來決定應該加載哪個狀態? –