我正在尝试通过 Backbone 获得 GitHub 式的路由匹配。这意味着在检查了所有其他路由之后,对 /: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
});
最佳答案
如果您创建以“/something”开头的路由,Backbone 会将它们解释为“//something”。所以解决方案是删除所有前面的斜杠,现在它工作得很好。
关于javascript - Backbone 路由: optional params in root not matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660560/