Angular2有相当于$的文档

前端之家收集整理的这篇文章主要介绍了Angular2有相当于$的文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经开始研究Angular2,并基本完成了3个嵌套组件的工作.但是我无法解决如何向文档添加一个按键处理程序.

如果没有,我如何听文本上的按键并对其做出反应?
要清楚,我需要对文档本身做出回应,而不是输入.

在Angular 1中,我将创建一个指令并使用$document;这样的:

  1. $document.on("keydown",function(event) {
  2.  
  3. // if keycode...
  4. event.stopPropagation();
  5. event.preventDefault();
  6.  
  7. scope.$apply(function() {
  8. // update scope...
  9. });

但是我还没有找到一个Angular2解决方案.

你可以这样做:
  1. @Component({
  2. host: {
  3. '(document:keyup)': '_keyup($event)','(document:keydown)': '_keydown($event)',},})
  4. export class Component {
  5. private _keydown(event: KeyboardEvent) {
  6. let prevent = [13,27,37,38,39,40]
  7. .find(no => no === event.keyCode);
  8. if (prevent) event.preventDefault();
  9. }
  10. private _keyup(event: KeyboardEvent) {
  11. if (event.keyCode === 27) this.close();
  12. else if (event.keyCode === 13) ...;
  13. else if (event.keyCode === 37) ...;
  14. else if (event.keyCode === 38) ...;
  15. else if (event.keyCode === 39) ...;
  16. else if (event.keyCode === 40) ...;
  17.  
  18. // else console.log(event.keyCode);
  19. }
  20. }

BTW,角队有一些有趣的ideas about keyboard events,不知道现在的状态是什么.甚至可能it’s working,没有尝试自己:)

猜你在找的Angularjs相关文章