如何在 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 函数中。
更多详细信息:
我是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 函数中。
更多详细信息: