events - AngularJS:如何在 promise 完成后防止事件的默认()?

标签 events angularjs promise angularjs-routing

我有这样的代码:

$scope.$on("$locationChangeStart", function(event, newPath, oldPath) {

    // Do some sync checks
    if (!$scope.isPageAllowed($location.path()))
    {
        // Prevent default for some reason
        event.preventDefault();
    }
});

当我尝试像这样解决 promise 时:

$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(因为异步执行),并且在 promises 得到解决后一段时间后阻止了 event

有没有一种方法可以将 event 与我的 promises 联系起来,这样它就可以在 promises 被解决后被阻止,而不是在函数结束后立即被阻止?

最佳答案

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

您正在寻找 $route.resolve。路由的异步解析/拒绝,为 Controller 提供数据或只是检查某些内容。

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

关于events - AngularJS:如何在 promise 完成后防止事件的默认()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627335/

相关文章:

javascript - 如何使用 Angular.js 显示有限的数据?

javascript - Node.js - 对内部带有模拟 promise 的函数进行单元测试

javascript - 由于数据库调用,在 Promise 中使用异步。我该如何修复这个反模式?

c# - 检查页面事件是否触发

java - 如何监听组小部件(Java SWT)的文本修改事件?

azure - 如何从不同位置向 eventhub 发布事件?

css - 如何检查 Angular 表中 td 内的多个条件?

javascript - 如何从url中读取angularjs中的完整查询字符串?

javascript - Mongoose 中嵌套查询执行的问题

JavaScript - 检测浏览器停止按钮点击