1

我想通过骨干获取GitHub-esque路由匹配。这意味着在检查完每一条其他路线之后,碰到/:userName应该最后被抓到。在我目前的设置中,我的unit路由会在所有呼叫中被触发,是否有办法使其行为正常?非常感谢!骨干路由:根中的可选参数不匹配

'use strict'; 

/** 
* Module dependencies 
*/ 

var course = require('./views/course'); 
var unit = require('./views/unit'); 

/** 
* Routes 
*/ 

var Router = Backbone.Router.extend({ 
    routes: { 
    '(/)': 'course', 
    '/:user/:course/:unit(/)': 'unit' 
    }, 
    course: function() { 
    course(); 
    }, 
    unit: function() { 
    unit(); 
    } 
}); 

/** 
* Init router 
*/ 

var router = new Router(); 

/** 
* Options 
*/ 

Backbone.history.start({ 
    pushState: true 
}); 

回答

0

看起来如果你制作以“/ something”开头的路由,骨干将它们解释为“// something”。所以解决方案是删除所有预先设置的斜杠,现在它工作得很好。

+0

Backbone.Router.extend:[“请注意,您需要避免在路径定义中使用前导斜杠”](http://backbonejs.org/#Router-extend) –