我尝试在div [contenteditable = true]内的组件上侦听键盘事件。为什么不工作?
plunk http://plnkr.co/edit/Tjmihqc1r5UrS3XJ3QQ0?p=preview
模板:
<div contenteditable="true"> <h2 (keydown)="log($event)" (keyup)="log($event)" (keypress)="log($event)" (click)="log($event)">Hello {{name}}</h2> </div>
点击 - 工作
keydown,keyup,keypress - not work
更新: 我发现问题不适用于角度2 其满足的相关Keypress event on nested content editable (jQuery)
答案 0 :(得分:0)
试试这个:
@Component({
selector: 'my-app',
template: `
<div contenteditable="true" (keyup)="onKey($event)">
<h2>Hello {{values}}</h2>
</div>
`,
})
在component.ts
中export class App {
name:string;
log = [];
values = '';
constructor() {
this.name = 'Angular2'
}
onKey(event: any) {
console.log(event);
this.values += event.key + ' | ';
}
}
根据Angular2文档,您需要使用Keyup而不是Keydown Get User input from $event
答案 1 :(得分:0)
我更新了我的问题。简而言之 - 角2工作如预期的那样。
与contenteditable本身相关的问题。
你无法在满足的儿童元素上听键盘事件。
中注意到的可行的解决方法