【发布时间】:2014-07-16 11:57:10
【问题描述】:
我在让木偶的路由器工作时遇到困难,确切地说是路由器的控制器。 这是我的代码:
App.RouterController = Marionette.Controller.extend({
render: function(){
alert(123);
}
});
//Router
App.Router = Backbone.Marionette.AppRouter.extend({
appRoutes: {
"*actions": "render"
},
controller: new App.RouterController,
initialize: function(){
var self = this;
Backbone.history = Backbone.history || new Backbone.History({});
var root = "/";
Backbone.history.start({
pushState: Modernizr.history,
root: root,
silent: !Modernizr.history
});
// handle history for old internet explorer + normal behaviour
if(!Modernizr.history) {
var rootLength = Backbone.history.options.root.length;
var fragment = window.location.pathname.substr(rootLength) || 'cs';
self.navigate(fragment, { trigger: true });
}
}
});
App.on('start', function(options) {
App.Main = new App.Main;
App.Router = new App.Router();
});
App.start();
我希望 App.RouterControler 的渲染方法将在所有路由上执行,但什么都没有发生,即使控制台中没有显示错误... 我做错了什么?
注意:路由器的初始化方法是有效的,如果我把警报或控制台登录进去,它就会显示出来
【问题讨论】:
-
你用的是哪个版本的木偶?
-
v2.0.2,我猜这是最新的...
-
此处发布的代码是正确的。我看不出任何问题。您是否尝试过声明自定义路线和操作并在那里导航?
-
是的,我做到了,但没有运气......
-
也许您在初始化 Marionette.Application 或其他地方有问题?
标签: javascript backbone.js marionette backbone-routing