好吧,这可能是UI-路由器的错误,也可能是我的错。我在Git https://github.com/angular-ui/ui-router/issues/2342上发布了一个问题,现在还没有回应,如果有人能帮上忙的话。
如果我做了什么,比如:
angular.module('myapp', [ 'ui.router' ])
.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/state1");
$urlRouterProvider.rule(function ($injector, $location) {
return "/state2";
});
$stateProvider
.state('state1', {
url: "/state1",
views: {
"mainview": { template: "state1.html" }
}
})
.state('state2', {
url: "/state2",
views: {
"mainview": { template: "state2.html" }
}
});
})
.controller('AppCtrl', AppCtrl);
function AppCtrl(){
}地址栏已更改,但state2.html未加载,只有一个空白页而不引发任何错误。
非常感谢任何可能的解决方案。
发布于 2015-10-29 06:24:24
把.rule看作是一个AOP过滤器。这只是一个方面,
与否则相比,它被视为“最后的url解析处理程序”。
因此,如文档中所述,最好的用途是引入一个不区分大小写的url支持:
规则(规则)
定义$urlRouterProvider用于查找特定URL匹配的规则。
rule object Handler函数,它使用$injector和$location服务作为参数。可以使用它们以字符串的形式返回有效路径。示例:
var app = angular.module('app','ui.router.router');app.config(function ($urlRouterProvider) { //这里有一个示例说明如何允许不区分大小写的urls $urlRouterProvider.rule ($injector,$location) { var path = $location.path(),规范化= path.toLowerCase();if (path !==归一化){返回归一化;});};
有一个上面的例子
https://stackoverflow.com/questions/33404265
复制相似问题