Angularjs 手动进入状态时,Angular UI路由器逃过了斜杠错误
在我的简单示例中,如果我手动使用$state.gotoState、toParams触发状态更改,为什么要在url中编码斜杠Angularjs 手动进入状态时,Angular UI路由器逃过了斜杠错误,angularjs,url,authentication,angular-routing,trailing-slash,Angularjs,Url,Authentication,Angular Routing,Trailing Slash,在我的简单示例中,如果我手动使用$state.gotoState、toParams触发状态更改,为什么要在url中编码斜杠 $rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams, error) { console.log("stateChangeStart"); $rootScope.loading = true;
$rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams, error) {
console.log("stateChangeStart");
$rootScope.loading = true;
if(!isLoggedIn) {
event.preventDefault();
Api.get().then(function(response){
isLoggedIn = response;
$state.go(toState, toParams);
});
}
});
这里是完整的例子。
例如,url like:/template1编码为%252Ftemplate1。否则状态也会被编码
这真的很奇怪,我怎么能禁用它
在$stateChangeStart事件中,我模拟服务器端用户身份验证。这个问题的另一部分是如何在这个具体示例中将url/template1与/template1/等同对待
另外,我关闭了html5模式,因为它需要一个正确配置的服务器来测试bug?在本例中,需要html5模式
Tnx请参阅,这是一个带参数的url解决方案,在我的示例中,任何url中都没有参数。否则,404也被编码。