3

我有一些这样的代码:

$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与 my链接promises,所以它会在承诺被解决后被阻止,而不是在函数结束后被阻止?

4

1 回答 1

6

抱歉,这行不通:-)。事件纯粹是同步的。

您正在寻找 $route.resolve。路由的异步解析/拒绝,给控制器数据或只是为了检查一些东西。

http://www.egghead.io/video/Kr1qZ8Ik9G8

于 2013-05-18T18:08:58.637 回答