Die drei Koordinationsregeln für Switches
Beispielmodul: hellotypes, Properties switchoneofmany/switchatmostone/switchany.
Mehrere ElementBool-Elemente derselben Property können über "rule" im JSON der Property wie Radio-Buttons oder unabhängige Kontrollkästchen koordiniert werden:
rule | Verhalten |
|---|---|
0 — OneOfMany | Genau eines ist zur selben Zeit wahr (Radio). Ein Element auf true zu setzen setzt alle anderen auf false. Es direkt wieder auf false zu setzen wird abgelehnt — es muss ein anderes gewählt werden. |
1 — AtMostOne | Null oder eins ist wahr (optionales Radio). Gleiches Verhalten, außer dass man auch direkt abwählen kann. |
2 — Any (Standard) | Keine Einschränkung, unabhängige Kontrollkästchen. |
"switchoneofmany": {
"permission": 2,
"rule": 0,
"e": {
"calibrate": { "type": "bool", "directedit": true },
"guide": { "type": "bool", "directedit": true },
"stop": { "type": "bool", "directedit": true }
}
}Vollständig deklarativ: die tatsächliche Anwendung der Regel lebt im Framework selbst, ausgelöst durch jeden beliebigen Schreibzugriff auf eines der Elemente — kein Code im Modul nötig, damit das funktioniert, nur um bei Bedarf einen konsistenten Anfangszustand festzulegen.