Pole wyboru przechowuje ciąg znaków jako wartość i ciąg znaków jako tekst. Jego wartość to 'TRUE'
lub 'FALSE'
, a tekst to 'true'
lub 'false'
.
Pole wyboru
![Blok z etykietą „pole wyboru” i polem wyboru ze znacznikiem wyboru.
Pole wyboru w zwiniętym bloku
na podstawie trendów
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');
}
};
Konstruktor checkbox przyjmuje opcjonalną wartość i opcjonalny walidator. Opcjonalna wartość powinna być wartością 'TRUE'
, 'FALSE'
lub logiczną, w przeciwnym razie zostanie domyślnie ustawiona wartość false
.
Publikacja w odcinkach
JSON
Kod JSON pola z polem wyboru wygląda tak:
{
"fields": {
"FIELDNAME": true
}
}
Gdzie FIELDNAME
to ciąg znaków odwołujący się do pola z polem wyboru, a wartość to wartość do zastosowania w polu. Wartość musi być typu logicznego.
XML
Kod XML pola wyboru wygląda tak:
<field name="FIELDNAME">TRUE</field>
lub
<field name="FIELDNAME">true</field>
Atrybut name
zawiera ciąg znaków odwołujący się do pola wyboru, a tekst wewnętrzny to wartość, którą należy zastosować do pola. Wartość tekstu wewnętrznego podlega tym samym regułom co wartość konstruktora.
Pamiętaj, że po deserializacji i ponownie serializacji wszystkie wartości tekstu wewnętrznego będą zapisane wielkimi literami ('TRUE'
lub 'FALSE'
). Czasami jest to ważne podczas porównywania obszarów roboczych.
Dostosowywanie
Znak zaznaczenia
Właściwości Blockly.FieldCheckbox.CHECK_CHAR
można używać do zmiany wyglądu znacznika wyboru. Wartość powinna być ciągiem znaków zawierającym znak Unicode.
Właściwość CHECK_CHAR
ma domyślnie wartość „\u2713” lub ✓.
Jest to właściwość globalna, więc po jej ustawieniu zostanie ona zastosowana do wszystkich pól wyboru.
Tworzenie walidatora pola wyboru
Wartość pola z polem wyboru to 'TRUE'
lub 'FALSE'
, więc weryfikator powinien akceptować te wartości (czyli ciąg znaków) i zwracać 'TRUE'
, 'FALSE'
, null
lub undefined
.
Oto przykład mechanizmu weryfikacji, który ukrywa lub wyświetla pole tekstowe w zależności od tego, czy pole wyboru jest zaznaczone:
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');
}
}