Jak przekazać dowolne dane do funkcji obsługi zdarzenia click z komponentu sieci polimerowej Dart
W interfejsie WWW Darta możliwe było przekazanie dowolnych danych do działania w odpowiedzi na zdarzenia, na przykład poniższy fragment przekazuje wartość2
doincrement(int incBy)
metoda w odpowiedzi na zdarzenie kliknięcia przycisku:
<!-- 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>
W Polymer (i Polymer.dart) atrybut zdarzenia on-click wymaga wersji łańcucha nazwy funkcji, a nie rzeczywistego wywołania funkcji. Jest to opisane na stroniestrona z dokumentami polimerowymi tak jak:
Wartością atrybutu obsługi zdarzenia jest nazwa łańcucha metody na komponencie. W przeciwieństwie do tradycyjnej składni, nie można umieścić kodu wykonywalnego w atrybucie.
Przy użyciu polymer.dart wygląda to tak:
<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>
Pytanie: Jak przekazać dowolną wartość doincrement
funkcjonować?