我知道在Backbone.js中我可以使用像这样的正则表达式
_routeToRegExp: function (route) {
route = route.replace(this.escapeRegExp, "\\$&")
.replace(this.namedParam, "([^\/]*)")
.replace(this.splatParam, "(.*?)");
return new RegExp('^' + route + '$', 'i'); // Just add the 'i'
}
使路线不敏感而/product
与/Product
相同,与/PRODUCT
相同
虽然我试图弄清楚如何在Angular.js中做同样的事情,但我遇到了一个问题,在应用程序内部执行此操作的最佳方式是什么,而不是使用htaccess重写等一揽子方法?感谢
答案 0 :(得分:3)
尝试这样的事情:
var testApp = angular.module('testApp', ['ngRoute'])
.config(function ($routeProvider) {
$routeProvider.when('/newEvent',
{
templateUrl: 'templates/NewEvent.html',
controller: 'EditEventController',
caseInsensitiveMatch: true
});
where caseInsensitiveMatch:true表示/ product == / Product; caseInsensitiveMatch:false表示/ product<> /产品
答案 1 :(得分:1)
我会使用ui-router。它比Angular的内置路由器更先进,并允许您定义正则表达式。它还允许你定义子视图等。还有一个内置的重定向功能,所以你可以做一些类似psuedocode:$urlRouterProvider.when(anything, convertolowercase);
的全局方法,虽然我还没有测试它,它也支持正则表达式。