2017-05-13 1 views
0

カスタムコンポーネントを作成しています。入力にテキストを貼り付けるときにモデルを更新する必要があります。私はこれを行うにはRenderer2setValue関数を使用することができると思ったが、それは私がそれを期待していたように動作していないようです。角度付きモデルの貼り付けテキスト

私は同様の問題を検索しようとしてきたが、意外にも、この問題につまずいた、まだ..

どのようにして貼り付けたテキストでモデルを同期することができます誰があるように思えないのですか?

テンプレート:

<input #input [(ngModel)]="model" (paste)="onPaste($event)"> 

コンポーネント:

@ViewChild('input') input: ElementRef; 

constructor(private renderer2: Renderer2) {} 

onPaste(event: any): void { 

    this.renderer2.setValue(this.input, event.clipboardData.getData('text/plain')); 

    // Is not set with the new data 
    console.log(this.model); 
} 

答えて

0

どうやらとき、ペーストイベントが発生し、更新することがないモデルを引き起こし(input)イベントの前に(paste)イベントが発生します。これは「同期されていない」ため、ペースト・コールバックにsetTimeout()を使用してモデルの更新を待つ必要がありました。その後、私はいつものようにモデルにアクセスできます。

また、このようにそれを行うことができます。

https://plnkr.co/edit/NFOwVzO5M5XzbwzHsVjA?p=preview

クレドはその解決のために@Ghetolayします。

関連する問題