我无法找到一个直截了当的答案,这让我相信它真的很简单。不管怎样,我走了。
我的$ 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'等都重定向到同一路径?
答案 0 :(得分: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: '/' });
});
答案 1 :(得分:0)
使用config函数配置的路由默认情况下区分大小写。考虑下面的路线。请注意,路线(/ home)是小写字母。
$routeProvider
.when("/home", {
templateUrl: "Templates/home.html",
controller: "homeController",
controllerAs: "homeCtrl",
})
如果我们在浏览器中键入以下URL,则会按预期看到home.html。 http://localhost:51983/home
如果键入以下URL,则将看到空白的布局页面。这是因为默认情况下,路由区分大小写 http://localhost:51983/HOME
如下所示,将路由不区分大小写的caseInsensitiveMatch
属性设置为true。
$routeProvider
.when("/home", {
templateUrl: "Templates/home.html",
controller: "homeController",
controllerAs: "homeCtrl",
caseInsensitiveMatch: true
})
要使caseInsensitiveMatch
上的所有路由都区分大小写,请设置$routeProvider
属性,如下所示。
$routeProvider.caseInsensitiveMatch = true;