我正在慢慢地将我的 django 实现转移到backbonejs 渲染。当backbonejs 渲染无法处理时,Django 被用作后备。这是由bonesjs 路由器使用以下代码处理的。
Backbone.history.start({
pushState: true,
silent: true
});
$(document).on("click", "a[href^='/']", function(event) {
if (!event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {
var url = $(event.currentTarget).attr("href").replace(/^\//, "");
var matched = _.any(Backbone.history.handlers, function(handler) {
if (handler.route.test(url)) {
return true;
}
});
if (matched) {
event.preventDefault();
application.router.navigate(url, { trigger: true });
}
}
});
基本上,如果骨干路由器无法处理它将回退到 django 模板渲染。但我现在无法捕捉分页的页面。我定义了以下路由。
module.exports = Backbone.Router.extend({
routes: {
'set/(?page=:page)': 'list_set'
},
list_set: function(page) {
// Do listing of set
}
});
我希望 urlset/?page=2
由 Backbone.js 触发。但上述路线不匹配。什么路由模式可以让页面参数成为可选参数,同时让backbonejs处理路由?