我目前木偶集成到现有的骨干应用。
我在地方现有的骨干路由器,但是想实现一个Marionette.AppRouter取代其位置。 问题是,在“硬刷新”上,新的木偶路由器应拿起URL,它不火。 如果我浏览到另一个页面,然后再回到那个没有在硬刷新火的URL,它正确地触发。 我想不通为什么它的工作原理后,我已导航到另一个页面,然后再返回。 这里是我的代码示例:
TestApp = new Backbone.Marionette.Application();
var testAppController = {
testLoadPage: function(){
console.log('testLoadPage Fired'); //<---- DOES NOT FIRE ON HARD REFRESH
}
};
TestAppRouter = Backbone.Marionette.AppRouter.extend({
appRoutes: {
"!/:var/page": "testLoadPage",
"!/:var/page/*path": "testLoadPage"
},
controller: testAppController,
route: function(route, name, callback) {
return Backbone.Router.prototype.route.call(this, route, name, function() {
if (!callback) callback = this[name];
this.preRoute();
this.trigger.apply(this, ['beforeroute:' + name].concat(_.toArray(arguments)));
callback.apply(this, arguments);
});
},
preRoute: function() {
app.showLoader(name, arguments);
}
});
TestApp.addRegions({
contentContainer: '#container'
});
TestApp.addInitializer(function(options){
new TestAppRouter();
});
TestApp.start();
当我加载页面: http://mysamplesite.com/#!/123/page
直接,木偶路由器不火,因为它应该。
但是,如果我加载页面: http://mysamplesite.com/#!/123
然后导航到http://mysamplesite.com/#!/123/page
,木偶路由器火灾正确。 有任何想法吗?