在Marionette的早期版本中,我们可以使用Marionette Controller
return Marionette.AppRouter.extend({
appRoutes: {
'admin/:controller/:action(?:query)': "controllerThird",
'*notFound': "error"
},
controller: new Controller()
})
return Marionette.Controller.extend ({
controllerThird: function (controller, action, query) {
this.start(action);
}
})
但现在Marionette.Controller
警告:已弃用。不推荐使用Controller对象。代替 使用Controller类和AppRouter,你应该指定你的 简单Javascript对象或木偶对象上的回调
我们使用像
这样的MVC控制器function (Backbone, Marionette, controller){
"use strict";
var AppRouter = Backbone.Marionette.AppRouter.extend({
appRoutes: {
"path1" : "goto_path1",
"path2" : "goto_path2",
"path3" : "goto_path3"
}
});
return new AppRouter({controller: controller});
});
define([
'jquery',
'underscore',
'backbone',
'marionette',
'app',
'userSession'
],
function($, _, Backbone, Marionette, App, userSession) {
return {
goto_path1: function () {
//I need get current query in this point
},
});
在Controller处理程序中,我想要访问操作,查询类似
的参数controllerThird: function (controller, action, query)
我该怎么做?
答案 0 :(得分:0)
您实际上可以保留大部分现有代码,但仍可以使用。它与弃用消息所暗示的一样简单。
只需更换控制器
即可return Marionette.Controller.extend ({
controllerThird: function (controller, action, query) {
this.start(action);
}
})
使用木偶物品:
return Marionette.Object.extend ({
controllerThird: function (controller, action, query) {
this.start(action);
}
})
请参阅此处以获取更广泛的示例