In einem Kästchen wird ein String als Wert und ein String als Text gespeichert. Das
Der Wert ist entweder 'TRUE'
oder 'FALSE'
und sein Text ist entweder 'true'
oder
'false'
.
Feld „Kästchen“
Kästchenfeld in minimiertem Block
Erstellung
JSON
{
"type": "example_checkbox",
"message0": "checkbox: %1",
"args0": [
{
"type": "field_checkbox",
"name": "FIELDNAME",
"checked": true
}
]
}
JavaScript
Blockly.Blocks['example_checkbox'] = {
init: function() {
this.appendDummyInput()
.appendField('checkbox:')
.appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
}
};
Der Kästchenkonstruktor übernimmt einen optionalen Wert und einen optionalen
validator zu haben. Der optionale Wert sollte entweder
'TRUE'
, 'FALSE'
oder ein boolescher Wert. Andernfalls wird standardmäßig false
verwendet.
Serialisierung
JSON
Die JSON-Datei für ein Kästchen sieht so aus:
{
"fields": {
"FIELDNAME": true
}
}
Dabei ist FIELDNAME
ein String, der auf ein Kästchen verweist, und
Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert muss ein boolescher Wert sein.
XML
Die XML für ein Kästchen sieht so aus:
<field name="FIELDNAME">TRUE</field>
oder
<field name="FIELDNAME">true</field>
Wenn das Attribut name
einen String enthält, der auf ein Kästchen verweist,
Der innere Text ist der Wert, der auf das Feld angewendet werden soll. Der innere Textwert
folgt denselben Regeln wie der Konstruktorwert.
Beachten Sie, dass nach der Deserialisierung und Reserialisierung der gesamte innere Text
Werte werden in Großbuchstaben angegeben ('TRUE'
oder 'FALSE'
). Das ist manchmal wichtig,
bei unterschiedlichen Arbeitsbereichen.
Anpassung
Häkchen
Mit dem Attribut Blockly.FieldCheckbox.CHECK_CHAR
lässt sich ändern,
Häkchen sieht aus. Der Wert sollte ein String mit einem Unicode sein
Zeichen.
Das Attribut CHECK_CHAR
ist standardmäßig auf „\u2713“ festgelegt oder ✓.
Dies ist eine globale Eigenschaft, daher werden alle Kästchenfelder geändert, wenn sie festgelegt wird.
Kästchenvalidierung erstellen
Der Wert eines Kästchen-Felds ist entweder 'TRUE'
oder 'FALSE'
. Bei der Validierung sollte daher
akzeptieren Sie diese Werte (d.h. einen String) und geben Sie 'TRUE'
, 'FALSE'
, null
oder
undefined
.
Hier ein Beispiel für eine Validierung, mit der ein Texteingabefeld basierend auf ob das Kästchen aktiviert ist:
validate: function(newValue) {
var sourceBlock = this.getSourceBlock();
sourceBlock.showTextField_ = newValue == 'TRUE';
sourceBlock.updateTextField();
return newValue;
},
updateTextField: function() {
var input = this.getInput('DUMMY');
if (this.showTextField_ && !this.getField('TEXT')) {
input.appendField(new Blockly.FieldTextInput(), 'TEXT');
} else if (!this.showTextField_ && this.getField('TEXT')) {
input.removeField('TEXT');
}
}