2013-07-15 39 views
1

我正在開發具有多個視圖,集合等的Backbone應用程序。 它還具有處理永久URL的非常好的路由器。如何檢測Backbone.History referer(歷史長度)

我想要實現的是創建一個「返回」按鈕,它允許用戶在返回window.history(-1)時返回先前的視圖(用戶來自該視圖之前)。如果沒有,「返回」按鈕將導致主頁。

基本上我需要檢查Backbone是否在其歷史記錄中保存了一些東西,我可以用它來回退一步。如果歷史記錄爲空(我們直接導航到此URL),則指向主路由器。

我已經嘗試過使用window.hisory.length,但它永遠不會是空的。它可能仍然指向瀏覽器的起始主頁或瀏覽器的空白頁面。

Backbone.History是否跟蹤通過它的URL(散列)?如果是這樣 - 我如何訪問它。我已經試過控制檯日誌記錄Backbone.History,但沒有找到任何我可以堅持的東西。

任何幫助/建議表示讚賞。

回答

0

你可以做到以下幾點:

路由器初始化功能 -

this.on("all", this.storeRoute); 
this.history = []; 

然後storeRoute功能(也路由器) -

storeRoute: function() { 
    return this.history.push(Backbone.history.fragment); 
} 

的也是路由器 -

previous: function(){ 
    if (this.history.length > 1) { 
     return this.navigate(this.history[this.history.length - 2], true); 
    } 
} 

所以,你隨時可以撥打yourApp.router.previous()