Können Parameter aus der Vorlage in eine Widget-Aktion injiziert werden?

Tatsächlich ließ sich mein Problem nicht so lösen, wie oben dargestellt:

  • Ja, die Benachrichtigungsstufe wurde geändert, aber…
  • sie wurde nicht gespeichert. Man müsste woanders klicken, um sie mit einer anderen Aktion zu speichern.

Durch intensives Suchen nach zufälligen Schlüsselwörtern in der GitHub-Code-Datenbank konnte ich eine Struktur wie diese finden:
{{d-button action=(action "up" wc) ...}}.

Durch einige Tests kam ich zu dem Schluss, dass es so funktioniert:

  • Vorlage:
    {{d-button action=(action "nameoftheaction" arg1 arg2) ...}}`
    
  • JS:
    api.modifyClass("component:some-component", {
        actions: {
            nameoftheaction(arg1, arg2, argA, argB) {
                console.log(arg1);
                console.log(arg2);
                console.log(argA);
                console.log(argB);
            }
        }
    })
    

Die ersten Argumente arg1, arg2 der Methoden sind diejenigen, die von der Vorlage übergeben werden. Die verbleibenden Argumente argA, argB … können durch die Spezifität der Komponente übergeben werden (zum Beispiel gibt der category-notifications-button eine Ganzzahl zurück, abhängig von der Einstellung, auf die der Benutzer klickt).

Ich bin absolut nicht sicher, ob das, was ich schreibe, korrekt ist, aber es könnte jemandem helfen, der dieselbe Frage hat wie ich.

1 „Gefällt mir“