2016-06-29 9 views
1

Ich versuche, etwas mit einer eingefügten Zeichenfolge zu tun, die funktioniert, aber wenn ich versuche, den Inhalt zu entfernen, kann ich nicht tun, da der eingefügte Inhalt isn ' t wird an das Modell der Eingabe gebunden.Angular 2 wie man eingefügten Inhalt aus der Eingabe entfernt

Wie können Sie die Eingabe des eingefügten Inhalts löschen?

Ich habe versucht, den Inhalt an das Modell zu binden und dann das Modell zu entfernen, aber dabei bleibt der tatsächlich eingefügte Inhalt im Ereignisobjekt, so dass es keine Lösung ist.

Auch versucht, die Eingabe direkt mit input.value = '' löschen, aber ohne Glück.

Markup:

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

Funktion:

onPaste(e: any) { 

    let content = e.clipboardData.getData('text/plain'); 

    // Do stuff 

    // Then clear pasted content from the input 
} 

Antwort

9

löschen die Variable Sie das Modell gebunden:

onPaste(e: any) { 

    let content = e.clipboardData.getData('text/plain'); 

    // Do stuff 

    setTimeout(() => { 
    this.newTag = ""; 
    }, 0); 
} 

Aus irgendeinem Grund der Text im Eingabe bleibt, wenn Sie anrufen this.newTag = "" synchron und wenn Sie es auf this.newTag = "foo" setzen, ist der Text in der Eingabe fooPASTEDTEXT.


Plunker für

Beispiel arbeiten versucht
+0

Bereits in diesem, und es funktioniert nicht. – Chrillewoodz

+0

Vielleicht müssen Sie eine Änderungserkennung oder etwas aufrufen? Obwohl ich bereits den Gesamtmodellwert emittiere, nachdem ich es gemacht habe. – Chrillewoodz

+0

Siehe meine aktualisierte Antwort – rinukkusu

Verwandte Themen