2017-03-15 3 views
0

ich beide, Maus und Touch-Ereignisse unterstützen, schreiben müssen, so habe ich Code wie dieserWinkel 2, wie benutzerdefinierte MouseDown-/Berührungsstart Implementierung

<button 
     (touchstart)="doSomething($event)" 
     (mousedown)="doSomething($event)"> 

Gibt es irgendeine Art und Weise sowohl in einer zu verschmelzen? Ich habe auch bemerkt, dass Touch-Geräte Mausereignisse auslösen, also brauche ich eine bessere Lösung. Ist es möglich, zum Beispiel eines Ereignis-Listener zu schreiben, so etwas wie diese

<button (pointerDown)="doSomething">...</button> 

Und in meiner PointerDown Ereignisklasse I auf beiden Ereignisse hören? Das wäre nett :)

Ich fand auch ng2-events Bibliothek, nicht sicher, ob es tun wird, was ich brauche.

Jede Hilfe wäre willkommen!

Antwort

1

Sie können all das mit Attribut-Direktive und @HostListener tun. Haben Sie nicht alles in meinem Kopf, aber Sie werden es verstehen, sobald Sie in es schauen

+0

Vielen Dank. Bedeutet das, dass Sie auch das Attribut hinzufügen müssen, zB: <

+0

Ja, etwas in der Zeile mit '@Output pointerDown = new EventEmitter()' und 'pointerDown.emit (value)' sollte Anruf an den von Ihnen angegebenen Rückruf machen – Julian

+0

Ja, das habe ich getan. Für Interessierte [hier] (https://angular.io/docs/ts/latest/guide/attribute-directives.html) ist die Dokumentation, die ich verwendet habe, um es herauszufinden –