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ą „checkbox:” i polem wyboru ze znacznikiem wyboru.

Pole wyboru w zwiniętym bloku

Ten sam blok po zwinięciu. Ma etykietę „variable: true” i nierówną prawą krawędź, co oznacza, że jest zwinięta.

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.

Pole wyboru z symbolem serca zamiast zaznaczenia

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

Pole wyboru z walidatorem

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