我正在使用backbonejs路由器,似乎路由不适用于已配置的路由的相反情况。
var AppRouter = Backbone.Router.extend({
routes: {
'project(/)(/index)': 'showProjects',
'project/:id': 'showProjectEdit'
}
});
适用于http://www.test.com:53895/project 但是当P为大写http://www.test.com:53895/Project
时不起作用我使用的版本是1.1.2。请帮忙!
答案 0 :(得分:1)
我们可以通过在backbonejs库中为_routeToRegExp函数的返回值添加'i'属性来使路由不区分大小写。
_routeToRegExp: function (route) {
var namedParam = /:\w+/g;
var splatParam = /\*\w+/g;
var escapeRegExp = /[-[\]{}()+?.,\\^$|#\s]/g;
route = route.replace(escapeRegExp, '\\$&')
.replace(namedParam, '([^\/]+\/?)')
.replace(splatParam, '(.*?)');
return new RegExp('^' + route + '$');
/*
* Note: If you would like case insensitivity,
* add the "i" attribute to the return
* return new RegExp('^' + route + '$', 'i');
*/
}
https://github.com/jashkenas/backbone/issues/848
谢谢戴夫!