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 主干路由器路由定义来处理所有这些条件_Javascript_Backbone.js_Backbone Routing - Fatal编程技术网

Javascript 主干路由器路由定义来处理所有这些条件

Javascript 主干路由器路由定义来处理所有这些条件,javascript,backbone.js,backbone-routing,Javascript,Backbone.js,Backbone Routing,我想要的是一条能在一条线路上处理以下所有线路的线路 现在看起来是这样的: routes: { 'item': 'itemConsole', 'item/view/:workflowId': 'itemDetail', 'item/create': 'itemCreate', 'item/create/:templateId': 'itemCreate', 'item/task/:taskId': 'itemTask', 'item/metrics': 'itemMetrics', 'item/n

我想要的是一条能在一条线路上处理以下所有线路的线路

现在看起来是这样的:

routes: {
'item': 'itemConsole',
'item/view/:workflowId': 'itemDetail',
'item/create': 'itemCreate',
'item/create/:templateId': 'itemCreate',
'item/task/:taskId': 'itemTask',
'item/metrics': 'itemMetrics',
'item/notAccessible': 'itemNotAccessible',
}
我想用前面提到的splat(*)将其浓缩成一些东西


这可以使用
'item(*thing):'itemController'
,但是控制器会得到一个字符串,然后我就必须拆分它,什么都不能。我宁愿它将它们作为参数传递给我的控制器,而不是一个字符串参数。

路由中的可选部分
(/:可选)
可以实现以下功能:

var Router = Backbone.Router.extend({
    routes: {
        'item(/:action)(/:id)': 'itemController'
    },

    itemController: function (action, id) {
        console.log(action, id);
    }
});
  • 演示

  • 片段

var-Router=Backbone.Router.extend({
路线:{
'item(/:action)(/:id)''itemController'
},
itemController:函数(操作,id){
$('#log').append(JSON.stringify({
行动:行动,
id:id
}));
}
});
新路由器();
Backbone.history.start()






完美。回答得很好。谢谢我通过做这个
项目(/:action(/:id))
更进一步,但是你的答案要好得多