我有一些像这样的代码:
$scope.$on("$locationChangeStart", function(event, newPath, oldPath) {
// Do some sync checks
if (!$scope.isPageAllowed($location.path()))
{
// Prevent default for some reason
event.preventDefault();
}
});
当我尝试像这样解决promises
时:
$scope.$on("$locationChangeStart", function(event, newPath, oldPath) {
// Do some async checks
$scope.fooPromises().then(function (data) {
// Prevent default for some reason when promises resolved (only if resolved)
event.preventDefault();
});
});
我成功event
(由于执行异步执行),并且在event
解析后暂时阻止了promises
。
有没有办法将event
与我的promises
联系起来,所以在承诺得到解决之后会完全阻止它,而不是在功能结束后直接阻止?
答案 0 :(得分:6)
抱歉,这不起作用:-)。事件纯粹是同步的。
您正在寻找$ route.resolve。异步解析/拒绝路由,提供控制器数据或仅检查某些内容。