如何在Marionette JS中使用带有应用程序的路由器

时间:2015-10-02 16:21:34

标签: backbone.js marionette backbone-routing

我是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

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

1 个答案:

答案 0 :(得分:1)

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

更多细节:

http://backbonejs.org/#History