是否有一种AngularJS方法可以在控制器中按下键调用例程?

9 angularjs

我期待有人会建议我使用jQuery(我已经加载了),但只是为了确定在我研究如何实现之前可以有人告诉我,如果有另一种方法可以让你敲击一个键(右箭头键)在我的控制器中调用javascript函数.

Ila*_*mer 21

如果您想收听文档上的事件

var handler = function(e){
    if(e.keyCode === 39) {
      console.log('right arrow');
      // $scope.doSomething();
    }      
};

var $doc = angular.element(document);

$doc.on('keydown', handler);
$scope.$on('$destroy',function(){
  $doc.off('keydown', handler);
})
Run Code Online (Sandbox Code Playgroud)

怎么样ng-keypress/ ng-keydown:

  • ng-keypress与箭头键有同样的问题(它只是使用element.on('keypress',).
  • ng-keydown可能也适合你.

角度方式是什么?

  • "角度方式"是一个主观的术语,尽管大多数有角度的专家会同意某种程度的.
  • 有时,角度允许您在不同的方式之间进行选择,它们都很好.
  • 它总是取决于您的应用程序的结构以及您希望实现的目标.
  • Angular.js为方便起见提供了一些玩具(内置指令),但这并不意味着你应该总是喜欢使用它们.
  • 我的指南尽可能是解耦/简单/干净的代码.
  • 声明并不总是意味着解耦/简单/干净(嗯...... XML)
  • 如果你的整个代码存在一个控制器内,为什么那些必须声明一个特定的模板分离它ng-eventa specific function?!
  • 我总是会考虑为事件和处理程序创建自定义指令(但这又取决于用例).
  • 当你掌握angular.js(学习内部)时,你会发现"你自己的角度方式".