2013-11-20 39 views
1

我想在每個頁面加載到jquery mobile之前檢查用戶是否設置(全局變量不是undefined/null)。Worklight - jquery mobile |如何檢查用戶是否在pagebeforeshow中登錄?

這樣做的最好方法是什麼?

我認爲要做到這一點

$(document).on("pagebeforeshow", "#mainPage", function(){ 
if(window.klappr.userId === undefined || window.klappr.userId == null){ 
        $.mobile.changePage($("#loginPage")); 
     }else{ 
loadMainOverview(); 
     } 
}); 

但如何停止第一changePage? (主要) 是否有更好的方法來檢查所有受保護的頁面?

回答

2

使用pagebeforechange,因爲它會阻止顯示目標頁面。使用pagebeforeshow將導致顯示目標頁面,然後跳轉到#loginpage。

$(document).on("pagebeforechange", function(e) { 
    if(window.klappr.userId === undefined || window.klappr.userId == null) { 
    $.mobile.changePage($("#loginPage")); 
    e.preventDefault(); 
    } 
    else { 
    loadMainOverview(); 
    } 
}); 
0

jquery mobile在本地存儲中提供本地存儲存儲數據,您可以使用全局。

localStorage.setItem("userId", value); 
localStorage.getItem(userId); 

$(document).on("pagebeforeshow", "#mainPage", function(){ 
if(localStorage.getItem(userId) === undefined || localStorage.getItem(userId) == null){ 
       $.mobile.changePage($("#loginPage")); 
    }else{ 
loadMainOverview(); 
    } 
});