Wie übergebe ich beliebige Daten von einer Dart Polymer-Webkomponente an eine Click-Event-Handler-Funktion?

In der Web-Benutzeroberfläche von Dart konnten beliebige Daten übergeben werden, um als Reaktion auf Ereignisse zu funktionieren. Das folgende Snippet übergibt beispielsweise den Wert2 zumincrement(int incBy) Methode als Antwort auf das On-Click-Ereignis der Schaltfläche:

<!-- Web UI -->
<element name="x-click-counter">
  <template>
    <button on-click="increment(2)">  <!-- passing a value of 2 -->
      Click me
    </button>   
  </template>
</element>
<script>
  import 'package:web_ui/web_ui.dart';

  class CounterComponent extends WebComponent {
    void increment(int incBy) {        // accept the value of 2
      count = count + incBy;
    }
  }
</script>

In Polymer (und Polymer.dart) erfordert das Ereignisattribut beim Klicken eine Zeichenfolgenversion des Funktionsnamens und keinen tatsächlichen Funktionsaufruf. Dies ist auf der beschriebenPolymer-Dokumentseite wie:

Der Wert eines Ereignishandlerattributs ist der Zeichenfolgenname einer Methode in der Komponente. Im Gegensatz zur herkömmlichen Syntax können Sie keinen ausführbaren Code in das Attribut einfügen.

Mit polymer.dart sieht das so aus:

<polymer-element name="x-click-counter">
  <template>
    <button on-click="increment">  <!-- can't pass a value of 2, as you need to pass a string -->
      Click Me
    </button>
  </template>
</polymer-element>
<script>
  import 'package:polymer/polymer.dart';

  @CustomTag("x-click-counter")
  class CounterComponent extends PolymerElement with ObservableMixin {
    @observable int count = 0;

    void increment(Event event, var detail, var target) {  // How do I pass 2 to this function?
      count = count ++;
    }
  }
</script>

Frage: Wie gebe ich einen beliebigen Wert an denincrement Funktion?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage