2017-02-28 10 views
0

div [contenteditable = true]内のコンポーネントでキーボードイベントを聴こうとします。なぜそれは働いていないのですか?私は問題がないことを発見し :キーボードイベントはcontenteditable内のコンポーネント内でバインドされます

UPDATEが動作しない - -

のkeydown、keyUpイベント、キー入力を仕事

<div contenteditable="true"> <h2 (keydown)="log($event)" (keyup)="log($event)" (keypress)="log($event)" (click)="log($event)">Hello {{name}}</h2> </div>

クリック:

http://plnkr.co/edit/Tjmihqc1r5UrS3XJ3QQ0?p=preview

テンプレートをplunk角度2に適用する その関連する関連性D Keypress event on nested content editable (jQuery)

答えて

0

はこれを試してください:あなたのcomponent.ts

export class App { 
    name:string; 
    log = []; 
    values = ''; 
    constructor() { 
    this.name = 'Angular2' 
    } 

    onKey(event: any) { 
    console.log(event); 
    this.values += event.key + ' | '; 
    } 
} 

インサイド

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div contenteditable="true" (keyup)="onKey($event)"> 
    <h2>Hello {{values}}</h2> 
    </div> 
    `, 
}) 

あなたの代わりにGet User input from $event

Plunkr Example

+0

に気づきました。 これはどれも動作しません –

+0

@ШлыковСергейはちょうど私の答えにplunkrの例を追加しました。 –

+0

それは私が何をしようとしていません。目的はcontenteditableの**子要素**にバインドすることです。それ自身を満足させることではない。 –

0
KeyDownイベントのkeyUpイベントを使用する必要がAngular2文書によると、

私の質問を更新します。短い角2で期待どおりの仕事。

contenteditable自体に関連する問題。

あなたはcontenteditableの子要素のキーボードイベントを聞くことができません。 keyup、keydownイベント、私の場合はキー入力:

かのうこの問題を回避するには、違いはありませんKeypress event on nested content editable (jQuery)

関連する問題