Pola pola wyboru

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.

Pole wyboru z sercem zamiast zaznaczenia

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');
    }
  }

Pole wyboru z walidatorem