2016-11-24 49 views
0

我有一個URL,如mysite.com/en/bla-bla/bla/page#someid 如果在哈希URL中找到someid,瀏覽器應該滾動窗口到某個頁面位置。如何忽略網址上的哈希值Backbone.history.start

此外,我在頁面上有骨幹網頁,如果用戶在URL骨幹網頁中打開某個散列值的頁面失敗如果沒有定義的路由匹配當前的URL。骨幹不能匹配#someid作爲路徑。

var result = Backbone.history.start(); 
     if (!result) { 
      console.log("If no defined route matches the current URL"); 
     } 

如何解決?

回答

2

您可以添加一個包羅萬象的route

圖示部分*splat,它可以匹配任何數量的URL組件。

var Router = Backbone.Router.extend({ 
    routes: { 
     '*catchall': 'homeRoute', 
     // any route defined further down takes precedence on the ones before. 
     'real-route/:id': 'realRoute', 
    }, 
    homeRoute: function() { /*...*/ }, 
    realRoute: function(id) { /*...*/ } 
}); 

定義要骨幹,以處理任何路線,然後讓任何不確定的路線由圖示捕獲。

+0

謝謝埃米爾,我應該寫每個可能的哈希值? –

+0

您可以編寫您希望Backbone考慮的路線。然後,所有其他路線都會被splat路線「* whatever」捕獲。 –