Pole wyboru zawiera ciąg znaków jako jego wartość, a ciąg znaków jako tekst. To
ma wartość 'TRUE'
lub 'FALSE'
, a jej tekst to 'true'
lub
'false'
Pole wyboru
Pole wyboru na 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 pól wyboru przyjmuje wartość opcjonalną i opcjonalną
walidatorem. Opcjonalna wartość powinna być albo
'TRUE'
, 'FALSE'
lub wartość logiczna. W przeciwnym razie domyślna wartość to false
.
Serializacja
JSON
Kod JSON pola wyboru wygląda tak:
{
"fields": {
"FIELDNAME": true
}
}
Gdzie FIELDNAME
jest ciągiem znaków odwołującym się do pola wyboru, a
Argument wartość to wartość, która ma zostać zastosowana do pola. 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>
Gdy atrybut name
zawiera ciąg znaków odnoszący się do pola wyboru,
a tekst wewnętrzny to wartość do zastosowania do pola. Wewnętrzna wartość tekstowa
ma te same reguły co wartość konstruktora.
Zwróć uwagę, że po deserializacji i ponownym zserializacji całego wewnętrznego tekstu
wartości będą zapisane wielkimi literami ('TRUE'
lub 'FALSE'
). To ważne,
podczas różnicowania
obszarów roboczych.
Dostosowywanie
Znak wyboru
Właściwość Blockly.FieldCheckbox.CHECK_CHAR
może służyć do zmiany tego,
jak wygląda znacznik wyboru. Wartość powinna być ciągiem znaków zawierającym kod Unicode
znaku.
Wartość domyślna właściwości CHECK_CHAR
to „\u2713” lub ✓.
Jest to właściwość globalna, więc gdy zostanie ustawiona, zmodyfikuje wszystkie pola wyboru.
Tworzenie walidatora pól wyboru
Pole wyboru ma wartość 'TRUE'
lub 'FALSE'
, więc walidator powinien
zaakceptować te wartości (tj. ciąg znaków) i zwrócić 'TRUE'
, 'FALSE'
, null
lub
undefined
Oto przykład walidatora, który ukrywa lub wyświetla pole do wprowadzania tekstu na podstawie: czy pole 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');
}
}