Pola pola wyboru

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

Ten sam blok po zwięciu. Ma on etykietę „variable: true” i ząbkowaną prawą krawędź, co oznacza, że jest zwinięty.

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.

Pole wyboru z sercem zamiast znacznika

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

Pole wyboru z walidatorem

Animowany GIF pokazujący zaznaczanie pola wyboru. Gdy to pole jest zaznaczone, wyświetla się pole tekstowe.