2013-01-23 48 views
0

如果我通過點擊鏈接(如127.0.0.1/#/project/1)導航到一個視圖,顯示正確的視圖。但是,如果我直接在瀏覽器中調用此URL(或點擊刷新),視圖將不會顯示。什麼可能是這種行爲的原因?直接調用網址與骨幹

我設置路由器是如下的方式:

var AppRouter = Backbone.Router.extend({ 
     routes: { }, 
     initialize:function() { } 
}); 
var app = new AppRouter(); 

,然後每個模塊(我使用require.js),路由和處理程序將被添加

app.route("project/:id", "showProject"); 

難道是路由尚未註冊,因此回調不會被調用?

回答

2

確保您所呼叫Backbone.history.start()畢竟你的路由器的裝載/實例化和路線定義:http://backbonejs.org/#History-start

或者,你可以停止歷史與Backbone.history.stop(),並再次啓動它。然後將添加添加的路線。

順便說一下,您可以測試歷史記錄當前是否以布爾值Backbone.History.started(注意大寫'H'是必需的)開始。

+0

我發現它調試'Backbone.history.start()'時發生了什麼。我在'$(document).ready(function(){Backbone.history.start();}'中調用了這個方法,它位於一個requirejs模塊中,我不知道它已經被調用當模塊完成加載時,與所有模塊加載時相反。謝謝你的評論有助於看到正確的位置。 – orange