javascript - Angular UI Bootstrap Popover - 如何使用 ESC 关闭弹出窗口

标签 javascript angularjs angular-ui-bootstrap popover

我搜索了问题和答案,尝试了不同的方法(例如 $('#element').popover('hide')),但我仍然无法使用 ESC 按钮关闭 Bootstrap 弹出窗口.

我会(错误地)认为这应该有效

$(document).keyup(function (event) {
    if (event.which === 27) {
      alert( "esc");
      $scope.isOpen = false;
    }
});

,但事实并非如此。

我准备了a plunker .

非常感谢!

最佳答案

正如 Aran 所说,这与摘要周期问题有关,因为 Angular 无法检测到变化。

这是一个正在工作的插件:http://plnkr.co/edit/M3F7dmmLBrtGdBCICdLm?p=preview

确保使用 $scope.$digest,因为它会自动强制执行 $apply

$scope.save = function () {
  $scope.isOpen = false;
  $scope.$digest();
};

$(document).keyup(function (event) {
    if (event.which === 27) {
      $scope.save();
    }
});

关于javascript - Angular UI Bootstrap Popover - 如何使用 ESC 关闭弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37986403/

相关文章:

javascript - 即使某些客户端未将监听器设置为 ('myMessage' , socket.broadcast.emit 'myMessage' , data') 是否会向所有客户端发出消息?

javascript - 如何删除 ios 7 的 cordova 3.9.2 中的index.html

java - "the current request is not a multipart request"AngularJS 和 Spring Boot

javascript - 单击时angularjs更改按钮文本

twitter-bootstrap - 使用 AngularJS 和模式对话框清理 URL

javascript - 未捕获的类型错误 : Cannot read property 'getElementsByTagName' of null

javascript - 嵌套 ng-repeat 在父重复 ID 上重复

javascript - 在多项选择选择控件上显示动态工具提示

javascript - 如何在 angularjs 中通过 npm 安装 angular-ui-bootstrap?

javascript - 在 Docker 容器中调试 nodejs 应用程序