2014-05-18 72 views
0

裏面沒有我的路由骨幹路由器我有一個提線木偶模塊我開始:爲什麼是這個木偶模塊

my.module('myApp', { 
    startWithParent: false, 
    define: 
    function (myApp, my, Backbone, Marionette,$, _) { 

    var Router = Backbone.Router.extend({ 
       routes: { 
         "howdy": "howdy", 
         "": "first" 
       }, 

       first: function() { 
        console.log("first"); 
       }, 
       howdy: function() { 
        console.log("howdy"); 
       } 
     }); 

    myApp.on("initialize:after", function(){ 
     console.log("after"); 
    }); 

    myApp.on('start', function(){ 
     console.log("start"); 
    }); 

    myApp.addInitializer(function (args) { 
     console.log("initialized"); 
     var router = new Router(); 
    }); 
    } 
}); 

當我打開我的申請,我開始我的模塊。

我開始,並正確地初始化。

但我認爲當我是本地主機:8080或本地主機:8080#嘿,第一個和好的方法將分別運行。

我在這裏做了什麼錯?

如何更改上面的代碼,以便當我加載頁面時'first'方法運行,並且當我在最後加載#howdy頁面時,howdy方法會運行?

這應該有希望在我已經制定的模塊結構內可行。

回答

0

你需要開始聽與History對象歷史事件:

Backbone.history.start(); 

做到這一點,你已經創建了路由器之後。更多信息here

+0

aaaarrgh,沒錯。 – user254694

+0

還有一些我不明白,雖然在歷史文檔中: – user254694

+0

還有一些我不明白,雖然在歷史文檔中:如果服務器已經呈現整個頁面,並且你不想要啓動歷史時觸發的初始路徑,傳遞silent:true。我的初始路線沒有觸發(「」:「第一」) - 我把Backbone.history.start();在初始化方法中啓動路由器後。 – user254694