如何在 Marionette JS 中将路由器与应用程序一起使用

How do I use a Router with an App in Marionette JS

我是Marionette的新手,一直停留在如何使用App建立AppRouter的概念上。我有启动我的路由器的代码,它工作正常:

var App = new Marionette.Application({
  onStart: function(options) {
    console.log('this works');
  }
});

然后我创建一个控制器:

var Controller = Marionette.Object.extend({
  main_route: function() {
    console.log('I NEVER GET HERE');
  }
});

我的路由器:

var AppRouter = Marionette.AppRouter.extend({
  controller: new Controller,
  appRoutes: {
    'foo': 'main_route'
  }
});

我调用 App.start(),它以输出启动,但是当我转到 localhost:3000/#foo

时我的路由器代码没有被调用

如何告诉我的应用程序使用我的路由器?

您需要调用 Backbone.history.start() 以启用对 'hashchange' 事件的监控。这应该在您的路由器和路由设置完成后完成。将其添加到您应用程序的 onStart 函数中。

更多详细信息:

http://backbonejs.org/#History