2016-05-05 6 views
2

Ich möchte zwei verschiedene Methoden in Aurelia auslösen, was ist der beste Weg, dies zu erreichen?Mehrere Auslöser in Aurelia

<a click.trigger="toggleSize(size.parts)" click.delegate="refreshPanel()" click.trigger="viewUtility.closeStickyDropdown($event)"> 
+3

Warum würden Sie nicht eine Funktion ausgewertet sicherzustellen auslösen, die alle drei in der js Komponente aufruft ? – peinearydevelopment

+0

Ja, genau das habe ich gemacht, ich habe mich gefragt, ob es einen anderen Weg gibt, das zu erreichen. Aber jetzt, wenn ich zurückschaue, denke ich, dass das die beste Lösung ist. – akshayKhot

Antwort

11

Was würde ich wohl tun, ist folgendes

HTML

<a click.delegate="yourFunction($event, size.parts)"> 

Javascript

yourFunction(event, parts) { 
    this.toggleSize(size.parts); 
    this.refreshPanel(); 
    this.viewUtility.closeStickyDropdown(event); //Depends on what viewUtility is. 
} 
1

Wenn Sie in deklarativen mehrere Trigger, haben wollen bilden:

<a click.capture="calledFirst()" 
    click.trigger="calledSecond()" 
    click.delegate="calledThird()"></a> 

Aber ich weiß nicht, ob Sie wirklich Ihre Ansicht so vermasseln müssen.

Es gibt einen anderen Ansatz:

<a click.delegate="(first() || 1) && (second() || 1) && (third())"></a> 

Beachten Sie die || 1, hilft es, die rechte Seite && immer