我在角度应用程序中使用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发生更改时,我希望代码加载相应的模板并调用其相应的控制器。我做错了什么?
答案 0 :(得分:0)
我知道这是一个老问题,但它可能仍然可以帮助那些面临类似问题的人。
由于您将URL规范化为小写,因此请确保状态配置中的URL也是小写。
例如,这不起作用:
$stateProvider.state('state1', { url: '/STATE1' ...
这将有效:
$stateProvider.state('state1', { url: '/state1' ...