Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在主干JS中将多条路由定向到同一方法?_Javascript_Backbone.js_Routes_Dry - Fatal编程技术网

Javascript 如何在主干JS中将多条路由定向到同一方法?

Javascript 如何在主干JS中将多条路由定向到同一方法?,javascript,backbone.js,routes,dry,Javascript,Backbone.js,Routes,Dry,这是BackboneJS应用程序中的我的路由对象: routes: { "" : "_navigate", "home" : "_navigate", "blog" : "_navigate", "photos" : "_navigate", "notes" :

这是BackboneJS应用程序中的我的路由对象:

       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 
    }