Javascript 在控制器上的路线上呼叫木偶?
我的路由器如下-Javascript 在控制器上的路线上呼叫木偶?,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我的路由器如下- 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);
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);
}
});
var RouterController = Marionette.Controller.extend({
test: function() {
console.log("test route called");
},
onRoute: function(name, path) {
// This onRoute is not being called.
}
});
我的路由器控制器如下-
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);
}
});
var RouterController = Marionette.Controller.extend({
test: function() {
console.log("test route called");
},
onRoute: function(name, path) {
// This onRoute is not being called.
}
});
如何调用控制器上的onRoute而不是route?我想在控制器上调用onRoute,因为我的所有路由功能都在控制器上调用。您可以通过传入路由器的选项对象访问控制器:
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函数。您不能使用路由器上的controller属性并通过此属性调用它。控制器?哦,没有找到facepalm