1

我使用Parse JS庫(它是Backbone的擴展)創建單頁Web應用程序。Backbone/Parse應用程序:鏈接在第一次加載時不起作用

我的路由器設置如下:

var AppRouter = Parse.Router.extend({ 
    routes: { 
     "": "signup", 
     "signup": "signup", 
     "login": "login", 
     "logout": "logout", 
     "dashboard": "dashboard", 
     "history": "history", 
     "account": "account" 
    }, 

    initialize: function(options) { 
    }, 

    login: function() { 
     this.navigateTo(new LoginView(), false); 
    }, 

    logout: function() { 
     Parse.User.logOut(); 
     Parse.history.navigate("signup", true); 
    }, 

    signup: function() { 
     this.navigateTo(new SignupView(), false); 
    }, 

    dashboard: function() { 
     this.navigateTo(new DashboardView(), true); 
    }, 

    history: function() { 
     this.navigateTo(new SentMailView(), true); 
    }, 

    account: function() { 
     this.navigateTo(new AccountView(), true); 
    }, 

    navigateTo: function(view, needsSignedIn) { 
     if (needsSignedIn && !Parse.User.current()) { 
     Parse.history.navigate("signup", true); 
     } else if (!needsSignedIn && Parse.User.current()) { 
     Parse.history.navigate("dashboard", true); 
     } else { 
     this.loadView(view); 
     } 
    }, 

    loadView: function(view) { 
     this.view && (this.view.close ? this.view.close() : delete this); 
     this.view = view; 
    } 
    }); 

在我main.js末,我創建一個新的路由器,查看和設置pushState爲true:

new AppRouter; 
new AppView; 
Parse.history.start({pushState: true}); 

的我遇到的問題是偶爾(我經常在第一次加載應用程序的頁面時),沒有鏈接工作,他們所做的只是刷新頁面。例如,點擊「/ history」鏈接不會加載歷史頁面,它只是重新加載當前頁面。同樣,點擊指向引導程序下拉菜單的鏈接(該程序只應觸發js調用)也會重新加載當前頁面。刷新瀏覽器(通過刷新按鈕)通常會修復此問題,然後所有鏈接都可正常工作。

任何想法爲什麼會發生這種情況?

回答

0

修正了它。這個問題是由於沒有被正確刪除的底層觀點造成的。此視圖具有綁定到「點擊」事件的功能 - 單擊任何元素。同樣的功能被綁定到儀表板視圖中的所有鏈接上點擊事件,這是我不想要的。

相關問題