谷歌搜索时,我看到很多这样的例子:
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
'show/:id': 'show'
},
index: function(){
$(document.body).append("Index route has been called..");
},
show: function(id){
$(document.body).append("Show route with id: " id);
}
});
这种实现如何使用正则表达式?
我想要类似的东西:
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
/show/(\d+:id)/: 'show'
/show/([A-Za-z]+:other)/: 'showSpecial'
},
第一个正则表达式与/show/[any number]
匹配,并将id
参数中的该数字传递给show
函数。
并且第二个正则表达式与/show/[any word]
匹配,并将other
参数中的该单词传递给showSpecial
函数。
答案 0 :(得分:2)
我不相信这种语法会起作用:
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
/show/(\d+:id)/: 'show'
/show/([A-Za-z]+:other)/: 'showSpecial'
},
相反,你可以这样写:
App.Router = Backbone.Router.extend({
initialize: function() {
this.route(/^$/, 'index');
this.route(/^show\/(\d+)$/,"show");
this.route(/^show\/([A-Za-z]+)/, "showSpecial");
}
})