Basisauswahl
class BasicSelectionExampleWidget extends NGSSelectionWidget {
/* Beispiel, das zeigt, wie man einen einfachen Radio-Auswahlknopf integriert
mit Label-Unterstützung
*/
/* HTML-Vorlage, die generiert wird, bevor die Klasse erstellt wird
Alle IDs und CSS-Klassennamen werden mit der uniqueId versehen
die während der Erstellung des Widgets angegeben wird */
static get template() {
return `<div class="ngs-widget-basic-radio-sample">
<div>
<input type="radio" id="radioButton">
</div>
<div>
<ngs-label></ngs-label>
</div>
</div>`
}
/* Stil, der diesem Widget zugewiesen wird. Beachten Sie, dass alle
Elementklassennamen mithilfe der eindeutigen ID des Widgets abgegrenzt werden */
static get style() {
return '.ngs-widget-basic-radio-sample { display:flex;flex-direction:row}';
}
init() {
// Holen Sie das Input-Element aus der Vorlage
// Es ist wichtig, jede ID
// der Vorlage mit der uniqueId des Widgets zu versehen
this.radioButton = this.getWidgetElementById('radioButton');
// Ermitteln Sie den aktuellen Render-Modus, um zu wissen, wie wir
// den Zustand hier einrichten sollten; setzen Sie ihn auf deaktiviert, wenn
// das Widget im Nur-Lese-Modus ist
this.isDisabled$(disabled => {
this.radioButton.disabled = disabled;
});
this.isSelected$(selected => {
this.radioButton.checked = selected;
});
this.radioButton.addEventListener('click', (event) => {
this.radioChecked(this.radioButton.checked, this);
});
}
// Den Wert an das Formular übermitteln
radioChecked(value, widget) {
widget.selectAnswer(value);
}
}
Zuletzt aktualisiert
War das hilfreich?