AngularJS:无法在angular-ui-router中使应用程序URL不区分大小写

时间:2014-05-20 05:43:56

标签: angularjs angular-ui-router

我在角度应用程序中使用angular-ui-router。我想在我的应用程序中使URL不敏感。我在堆栈溢出中进行了探讨,其中一个答案建议我在app config中使用此代码:

$urlRouterProvider.rule(function ($injector, $location) {
        //what this function returns will be set as the $location.url
        var path = $location.path(), normalized = path.toLowerCase();
        if (path != normalized) {
            //instead of returning a new url string, I'll just change the $location.path directly so I don't have to worry about constructing a new url string and so a new state change is not triggered
            $location.replace().path(normalized);
        }
        // because we've returned nothing, no state change occurs
        //return $location.absUrl(normalized);
    });

然而,它对我不起作用,我的应用程序返回主页(当尝试更改URL中的大小写时),因为我的默认路由器页面设置为(/ Home)。当url发生更改时,我希望代码加载相应的模板并调用其相应的控制器。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但它可能仍然可以帮助那些面临类似问题的人。

由于您将URL规范化为小写,因此请确保状态配置中的URL也是小写。

例如,这不起作用:

$stateProvider.state('state1', { url: '/STATE1' ...

这将有效:

$stateProvider.state('state1', { url: '/state1' ...