Ich möchte, dass eine Marko.js-Komponente ein Ereignis zusammen mit einem Wert ausgibt. Ich möchte dann, dass die enthaltene Komponente auf das Ereignis wartet und auf den Wert zugreift.Korrekte Art, Werte mit Marko.js zu senden
Ich habe eine einfache Schaltfläche Komponente, die wie folgt aussieht:
class {
doSomething() {
this.emit('buttonClicked', {someValue:'10'});
}
}
<button.example-button on-click('doSomething')>Click me!</button>
Die enthaltende Komponente wie folgt aussieht dann ...
class {
\t onButtonClicked(data){
\t \t console.log("I heard event:" + data.someValue);
\t }
}
<div class="button-manager">
<my-button on-buttonClicked('onButtonClicked') />
</div>
Dies funktioniert und protokolliert das Ereignis mit dem Wert korrekt. Allerdings bin ich ein wenig verwirrt, als ich die Syntax in dem Behälter erwarten würde die übergebenen Argumente in dem Ereignis-Listener zu verweisen ... so ...
<div class="button-manager">
<my-button on-buttonClicked('onButtonClicked', data) />
</div>
jedoch, dass dann aus Spuren ein leeres Objekt. Wenn ich eine Zeichenfolge als Argument verwende, dass die Zeichenfolge protokolliert wird, überschreibt sie das ursprüngliche Datenargument, das vom Emitter übergeben wurde.
Ist dies das beabsichtigte Verhalten?