Kästchenfelder

In einem Kästchen wird ein String als Wert und ein String als Text gespeichert. Das Der Wert ist entweder 'TRUE' oder 'FALSE' und sein Text ist entweder 'true' oder 'false'.

Feld „Kästchen“

Kästchenfeld in minimiertem Block

Erstellung

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

Der Kästchenkonstruktor übernimmt einen optionalen Wert und einen optionalen validator zu haben. Der optionale Wert sollte entweder 'TRUE', 'FALSE' oder ein boolescher Wert. Andernfalls wird standardmäßig false verwendet.

Serialisierung

JSON

Die JSON-Datei für ein Kästchen sieht so aus:

{
  "fields": {
    "FIELDNAME": true
  }
}

Dabei ist FIELDNAME ein String, der auf ein Kästchen verweist, und Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert muss ein boolescher Wert sein.

XML

Die XML für ein Kästchen sieht so aus:

<field name="FIELDNAME">TRUE</field>

oder

<field name="FIELDNAME">true</field>

Wenn das Attribut name einen String enthält, der auf ein Kästchen verweist, Der innere Text ist der Wert, der auf das Feld angewendet werden soll. Der innere Textwert folgt denselben Regeln wie der Konstruktorwert.

Beachten Sie, dass nach der Deserialisierung und Reserialisierung der gesamte innere Text Werte werden in Großbuchstaben angegeben ('TRUE' oder 'FALSE'). Das ist manchmal wichtig, bei unterschiedlichen Arbeitsbereichen.

Anpassung

Häkchen

Mit dem Attribut Blockly.FieldCheckbox.CHECK_CHAR lässt sich ändern, Häkchen sieht aus. Der Wert sollte ein String mit einem Unicode sein Zeichen.

Kästchenfeld mit Herz statt Häkchen

Das Attribut CHECK_CHAR ist standardmäßig auf „\u2713“ festgelegt oder ✓.

Dies ist eine globale Eigenschaft, daher werden alle Kästchenfelder geändert, wenn sie festgelegt wird.

Kästchenvalidierung erstellen

Der Wert eines Kästchen-Felds ist entweder 'TRUE' oder 'FALSE'. Bei der Validierung sollte daher akzeptieren Sie diese Werte (d.h. einen String) und geben Sie 'TRUE', 'FALSE', null oder undefined.

Hier ein Beispiel für eine Validierung, mit der ein Texteingabefeld basierend auf ob das Kästchen aktiviert ist:

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

Kästchenfeld mit Validator