Serialisierbare Labelfelder

Serialisierbare Labels funktionieren genau wie normale Labels, werden aber auch in XML serialisiert. Sie sollten nur verwendet werden, wenn Sie den Inhalt eines Labels programmatisch bearbeiten und er in XML serialisiert werden soll.

Serialisierbares Labelfeld

Ein Block mit dem serialisierbaren Label „a serializable label“. Optisch unterscheidet sich das nicht von einem Block mit einem normalen Label.

Serialisierbares Label-Feld in einem minimierten Block

Derselbe Block nach dem Minimieren. Es hat das Label „a serializable label“ (ein serialisierbares Label) und einen gezackten rechten Rand, um anzuzeigen, dass es minimiert ist.

Erstellung

JSON

{
  "type": "example_serializable_label",
  "message0": "%1",
  "args0": [
    {
      "type": "field_label_serializable",
      "name": "FIELDNAME",
      "text": "a serializable label"
    }
  ]
}

JavaScript

Blockly.Blocks['example_serializable_label'] = {
  init: function() {
    this.appendDummyInput()
        .appendField(new Blockly.FieldLabelSerializable("a serializable label"), "FIELDNAME");
  }
};

Das serialisierbare Label-Feld akzeptiert einen optionalen Wert und einen optionalen CSS-Klassenstring. Beide sind standardmäßig auf einen leeren String eingestellt.

Serialisierung

JSON

Das JSON für ein serialisierbares Label-Feld sieht so aus:

{
  "fields": {
    "FIELDNAME": text
  }
}

Dabei ist FIELDNAME ein String, der auf ein serialisierbares Label-Feld verweist, und der Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert folgt denselben Regeln wie der Konstruktorwert.

XML

Das XML für ein serialisierbares Label-Feld sieht so aus:

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

Das Attribut name des Knotens field enthält einen String, der auf ein serialisierbares Label-Feld verweist. Der innere Text des Knotens ist der Wert, der auf das Feld angewendet werden soll.

Validatoren

Für serialisierbare Label-Felder werden keine Validatoren unterstützt, da sie nicht von einem Nutzer bearbeitet werden können.