2014-05-18 64 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