无法在document.bind中设置范围

时间:2016-04-24 17:43:30

标签: javascript jquery angularjs

我试图重置之前在" esc"上定义的两个范围。 keyup事件但是当我检查它们时它显然不起作用。 $ document是在我的控制器的依赖项上定义的。

以下是我尝试的内容:

$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;
    }
});

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

1 个答案:

答案 0 :(得分:1)

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

您的代码将是:

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