Подтвердить что ты не робот

Угловая чувствительность к регистру

Мне не удалось найти прямой ответ на этот вопрос, который заставляет меня поверить, что это действительно действительно просто. В любом случае, здесь я иду.

Все вызовы в моем $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' и т.д. все перенаправлялись к одному и тому же пути?

4b9b3361

Ответ 1

Существует опция, которую вы можете передать в $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

Маршруты, настроенные с помощью функции 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;