我的路由器如下 -
var Router = Backbone.Marionette.AppRouter.extend({
appRoutes: {
'test': 'test'
},
onRoute: function(name, path) {
// this route is being called. This works
console.log("on route called", name, path);
}
});
我的routerController如下 -
var RouterController = Marionette.Controller.extend({
test: function() {
console.log("test route called");
},
onRoute: function(name, path) {
// This onRoute is not being called.
}
});
如何在控制器上调用onRoute而不是路由?我想在控制器上调用onRoute,因为我的所有路由功能都在控制器上调用。
答案 0 :(得分:0)
您可以通过传递到路由器的选项对象访问控制器:
var Router = Backbone.Marionette.AppRouter.extend({
appRoutes: {
'test': 'test'
},
onRoute: function(name, path, arguments) {
if (_.isFunction(this.options.controller.onRoute)) {
this.options.controller.onRoute(name, path, arguments);
}
}
});
请记住,每次触发路线时,都会调用控制器上的onRoute功能。