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
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 pola wyboru przyjmuje opcjonalną wartość i opcjonalny walidator. Opcjonalna wartość powinna być liczbą 'TRUE'
, 'FALSE'
lub wartością logiczną. W przeciwnym razie domyślnie będzie to false
.
Publikacja w odcinkach
JSON
Kod JSON pola wyboru wygląda tak:
{
"fields": {
"FIELDNAME": true
}
}
gdzie FIELDNAME
to ciąg znaków odwołujący się do pola wyboru, a wartość to wartość, którą chcesz zastosować w polu. Wartość musi być wartością logiczną.
XML
Kod XML pola wyboru wygląda tak:
<field name="FIELDNAME">TRUE</field>
lub
<field name="FIELDNAME">true</field>
gdzie 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ć w polu. Wartość tekstu wewnętrznego
jest zgodna z tymi samymi regułami co wartość konstruktora.
Pamiętaj, że po deserializacji i ponownej serializacji wszystkie wartości tekstu wewnętrznego będą pisane wielkimi literami ('TRUE'
lub 'FALSE'
). Czasami jest to ważne podczas porównywania obszarów roboczych.
Dostosowywanie
Znak znacznika wyboru
Właściwość Blockly.FieldCheckbox.CHECK_CHAR
może służyć do zmiany wyglądu znacznika wyboru. Wartość powinna być ciągiem znaków Unicode.
Właściwość CHECK_CHAR
ma domyślnie wartość \u2713
lub ✓.
Jest to właściwość globalna, więc po jej ustawieniu wszystkie pola wyboru zostaną zmodyfikowane.
Tworzenie walidatora pola wyboru
Wartość pola 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 weryfikatora, który ukrywa lub wyświetla pole do wprowadzania tekstu 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');
}
}