为什么我的骨干路由器没有在这个牵线木偶模块内部路由

时间:2014-05-18 13:54:57

标签: backbone.js marionette backbone-routing

我开始使用木偶模块:

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();
    });
  }
});

当我加载我的应用程序时,我启动了我的模块。

我开始,并正确初始化。

但我认为当我是localhost:8080或localhost:8080#howdy时,第一个和你的方法将分别运行。

我在这里做错了什么?

如何更改上面的代码,以便在我加载页面时运行'first'方法,当我在最后加载#howdy的页面时,howdy方法会运行?

在我已经解决的模块结构中,这应该是可行的。

1 个答案:

答案 0 :(得分:0)

您需要使用History对象开始收听历史事件:

Backbone.history.start();

在您创建路由器后执行此操作。更多信息here