2017-04-24 3 views
0

Ich versuche, eine Schaltfläche Komponente zu schreiben. Meine Frage ist: wenn ich vm.$emit verwenden, um ein Click-Ereignis zu schicken, ich nicht $event und andere Parameter in die Handler wie native HTML-Element wie dieseWie schreibe ich eine Schaltfläche Komponente in VueJS 2.0

<button v-on:click="handler($event, 'other-parameter')" /> 

injizieren kann, da der Handler nur das Argument in vm.$emit weitergegeben erhalten. Eine Lösung besteht darin, eine Funktion als Requisite zu übergeben, aber ich möchte, dass die Komponente wie ein natives HTML-Element funktioniert. Könnte ich das tun? und wie?

Antwort

0

Warum können Sie nicht? https://vuejs.org/v2/api/#Instance-Methods-Events

methods: { 
    handler($e, param) { 
     $this.$emit('buttonClicked', $e, param); 
    } 
} 

und im Hörer

<component @buttonClicked="handleClick"> 
+0

Ja, wir können das tun. Dies bedeutet jedoch, dass der Benutzer der Komponente die angegebene Handlersignatur verwenden muss. Ich möchte einen signaturfreien Handler erstellen, mit dem der Benutzer entscheiden kann, ob er ein Ereignis eingibt oder nicht. – holmescn

Verwandte Themen