Javascript 如何在主干JS中将多条路由定向到同一方法?
这是BackboneJS应用程序中的我的路由对象:Javascript 如何在主干JS中将多条路由定向到同一方法?,javascript,backbone.js,routes,dry,Javascript,Backbone.js,Routes,Dry,这是BackboneJS应用程序中的我的路由对象: routes: { "" : "_navigate", "home" : "_navigate", "blog" : "_navigate", "photos" : "_navigate", "notes" :
routes: {
"" : "_navigate",
"home" : "_navigate",
"blog" : "_navigate",
"photos" : "_navigate",
"notes" : "_navigate",
"about" : "_navigate",
"singlepost_:id" : "_navigate"
},
它将路由重定向到\u navigate
方法,如下所示:
_navigate: function(postId) {
if (postId) {
// show single entry
return;
}
// show regular entry
},
它工作得非常好。然而,我发现重复的路线对象很烦人
我的问题是:有没有更好的方法将所有这些路线指向相同的方法,而不必重复太多
谢谢 非常简单,真的
routes: {
"*actions:_id": "_navigate"
}
感谢BackboneJS谷歌集团的Jason Strimpel。查看有关splats的部分 路由定义中的任何“*splats”或“:params”都作为 关联函数的参数(按各自的顺序)。路线 定义为“/:route/:action”将传递2个变量(“route”和 “操作”)调用回调函数。(如果这令人困惑,请张贴 一个评论,我将尝试更好地表达它)这里有一些例子 使用“:params”和“*splats”的方法
路线:{
“/posts/:id”:“getPost”,
//
“/download/*path”:“downloadFile”,
//
“/:路由/:操作”:“加载视图”,
//
},
getPost:函数(id){
警报(id);//121
},
下载文件:函数(路径){
警报(路径);//user/images/hey.gif
},
loadView:函数(路由、操作){
警报(路由+操作);//仪表板图
}
routes: {
"/posts/:id": "getPost",
// <a href="http://example.com/#/posts/121">Example</a>
"/download/*path": "downloadFile",
// <a href="http://example.com/#/download/user/images/hey.gif">Download</a>
"/:route/:action": "loadView",
// <a href="http://example.com/#/dashboard/graph">Load Route/Action View</a>
},
getPost: function( id ){
alert(id); // 121
},
downloadFile: function( path ){
alert(path); // user/images/hey.gif
},
loadView: function( route, action ){
alert(route + "_" + action); // dashboard_graph
}