Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 AngularJS使路线不敏感?_Javascript_Regex_Angularjs - Fatal编程技术网

Javascript AngularJS使路线不敏感?

Javascript AngularJS使路线不敏感?,javascript,regex,angularjs,Javascript,Regex,Angularjs,我知道在Backbone.js中我可以使用这样的正则表达式 _routeToRegExp: function (route) { route = route.replace(this.escapeRegExp, "\\$&") .replace(this.namedParam, "([^\/]*)") .replace(this.splatParam, "(.*?)"); return new RegExp('^' + rou

我知道在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重写之类的笼统方法,最明智的方法是什么?谢谢

我会用的。它比Angular的内置路由器先进得多,可以让您定义正则表达式。它还允许您定义子视图等。还有一个内置的重定向功能,以便您可以执行类似psuedocode的操作:
$urlRouterProvider.when(anywhere,convertolowercase)我会使用。它比Angular的内置路由器先进得多,可以让您定义正则表达式。它还允许您定义子视图等。还有一个内置的重定向功能,以便您可以执行类似psuedocode的操作:
$urlRouterProvider.when(anywhere,convertolowercase)
对于全局方法,虽然我还没有测试过,但它也支持regex。

尝试以下方法:

var testApp = angular.module('testApp', ['ngRoute'])
.config(function ($routeProvider) {
   $routeProvider.when('/newEvent',
        {
            templateUrl: 'templates/NewEvent.html',
            controller: 'EditEventController',
            caseInsensitiveMatch: true
        });
其中caseInsensitiveMatch:true表示/product==/product;
caseInsensitiveMatch:false表示/product/product

尝试以下操作:

var testApp = angular.module('testApp', ['ngRoute'])
.config(function ($routeProvider) {
   $routeProvider.when('/newEvent',
        {
            templateUrl: 'templates/NewEvent.html',
            controller: 'EditEventController',
            caseInsensitiveMatch: true
        });
其中caseInsensitiveMatch:true表示/product==/product;
caseInsensitiveMatch:false表示/product/product

为什么不在每个正则表达式的开头添加
(?i)
?等等,你的正则表达式中没有强制敏感的东西,对吗?@Sin我问的是角度,不是主干。为什么不在每个正则表达式的开头加上
(?I)
?等等,你的正则表达式中没有强制敏感的东西,对吗?@Sin我是问角度,而不是主干。取决于你使用的版本取决于你使用的版本