AngularJS路由大小写敏感性问题

26

我一直没有找到一个简单明了的答案,这让我相信它其实非常非常简单。不管怎么样,我来试试看。

所有在我的$routeProvider中的调用都很好,但是区分大小写。以下是代码示例:

config(function ($routeProvider) {
    $routeProvider.
        when('/', { controller: 'TmpCtrl', templateUrl: '/app/home.html' }).
        when('/foo', { controller: 'TmpCtrl', templateUrl: '/app/foo.html' }).  
        otherwise({ redirectTo: '/' });
});
我需要添加什么才能使'/Foo'、'/fOO'、'/FoO'等路径都重定向到同一个路径?

也许这个问题会有帮助?https://dev59.com/ZmUp5IYBdhLWcg3w3KXe - John Sparwasser
这似乎与我的项目有关,但我不完全理解需要做什么才能使其正常工作。我的假设是,我需要拉取一个特定的脚本并将其包含在我的项目中,但我不确定还需要添加什么。 - ThisLanham
1个回答

53

你可以通过向 $routeProvider 传递选项来切换大小写敏感性:

config(function ($routeProvider) {
    $routeProvider.
        when('/', { controller: 'TmpCtrl', templateUrl: '/app/home.html' }).
        when('/foo', { controller: 'TmpCtrl', templateUrl: '/app/foo.html', caseInsensitiveMatch: true }).  
        otherwise({ redirectTo: '/' });
});

2
这适用于1.2.2版本。非常感谢@John,这应该被标记为答案! - Gorgi Rankovski
1
你会认为 $routeProvider 有一个配置来做这个等等的事情。我猜没有吗? - RJB
2
@RJB 这里有:$routeProvider.caseInsensitiveMatch = true; - Mathew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接