一个小故事。
我已在$routeProvider
我的主要.config()
设置.module()
我的限制路径如下所示。
.when('/admin', {
controller: 'adminCtrl as admin',
templateUrl: 'pages/admin/dashboard.tpl.html',
resolve: {
"currentAuth": ["$firebaseAuth", function($firebaseAuth) {
//$requireAuth returns a promise if authenticated, rejects if not
var ref = new Firebase(fbUrl);
var authObj = $firebaseAuth(ref);
return authObj.$requireAuth();
}]
}
})
我的问题是具体的解决方案,我假设它工作正常,因为我没有在浏览器上看到templateUrl
。 (我知道这是事实,我删除了返回并放置return true
并且我的templateUrl出现了)
所以现在,这个决心的承诺被拒绝了。由于我不是登录用户。
我的问题是,我怎么样?将$routeProvider
发送到我的.otherwise
路线或b。如果承诺被拒绝,则在重新定位中放置重定向。
基本上,如果用户未登录,我希望将其发送回主页。现在浏览器只显示一个空白页面。
答案 0 :(得分:0)
经过一些更多的研究(我意识到现在我需要挖掘更多,抱歉不会再次发生。)
我通过向我的应用程序添加.run()
找到了解决方案。
.run(function($rootScope, $location) {
$rootScope.$on("$routeChangeError", function(event, current, previous, eventObj) {
console.log(eventObj);
if (eventObj === 'AUTH_REQUIRED') {
$location.path("/");
}
});
})
当我收到AUTH_REQUIRED错误时,这会抓取我的routeChangeError并重定向。
简单。