javascript - 无法在 document.bind 内设置范围

标签 javascript jquery angularjs

我试图重置之前在“esc”按键事件上定义的两个范围,但当我检查它们时它显然不起作用。 $document 是在我的 Controller 的依赖项上定义的。

这是我尝试过的:

$document.bind('keyup', function (event) {
    if (event.keyCode == 27) {
        $scope.currentPage = false;
    }
});

我也尝试过 jQuery 的方式。它也不起作用:

jQuery(document).keyup(function (event) {
    if (event.keyCode == 27) {
        $scope.currentPage = false;
    }
});

我错过了什么?怎么了?提前致谢!

最佳答案

使用 $scope.$apply(function() { ... });强制 Angular 摘要周期运行。

您的代码将是:

$document.bind('keyup', function (event) {
  if (event.keyCode == 27) {
    $scope.$apply(function() {
        $scope.currentPage = false;
    });
  }
});

关于javascript - 无法在 document.bind 内设置范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826701/

相关文章:

javascript - 如何通过ajax从SPA获取完整的html?

javascript - 数组包括

javascript - 如何使用嵌套路由向页面添加内容而不用 react-router-v4 删除先前路由的内容?

javascript - AngularJS + jQuery 移动版

javascript - 如何使用 2 个主题自动增加常见问题解答的高度?

javascript - 当我通过以下方式在 Controller 中使用 gridapi 时有什么区别?

javascript - 从 Angular 中的 ngList 中删除项目

javascript - 如何将 ruby​​ - Rspec 转换为 js 测试 - opal gem

javascript - Jquery 函数无法在使用文档就绪函数的 header 中工作

javascript - 为什么 ng-src 不会触发 AngularJS 中的某些属性更改?