我正在使用 AngularJs 和 Ui-Router,我正在尝试设置两个不同的主页,一个用于已登录的用户,另一个用于未登录的用户。但我收到以下错误:
RangeError: Maximum call stack size exceeded
我跑了console.trace()
,我可以看到有一个问题导致状态无限循环(或类似的东西)。但是我不知道如何解决它。
这是产生错误的代码。
.run(function ($rootScope, $state, $location, Auth) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState) {
if(fromState.name === "") {
if (Auth.isLoggedIn()) {
$state.go('main');
event.preventDefault();
} else {
$state.go('welcome');
event.preventDefault();
}
} else {
if (toState.authenticate && !Auth.isLoggedIn()) {
$location.path('/login');
event.preventDefault();
}
}
});
据我所知,它似乎源于 if(fromState.name === "")