Сериализуемые поля меток

Сериализуемые метки работают точно так же, как и обычные метки, за исключением того, что они также сериализуются в XML. Их следует использовать только в том случае, если вы редактируете содержимое метки программным способом и хотите, чтобы оно было сериализовано в XML.

Сериализуемое поле метки

Сериализуемое поле метки в свернутом блоке

Создание

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

Поле сериализуемой метки принимает необязательное значение и необязательную строку класса CSS. Оба по умолчанию имеют пустую строку.

Сериализация

JSON

JSON для сериализуемого поля метки выглядит следующим образом:

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

Где FIELDNAME — это строка, ссылающаяся на сериализуемое поле метки, а значение — это значение, которое применяется к полю. Значение подчиняется тем же правилам, что и значение конструктора.

XML

XML для сериализуемого поля метки выглядит следующим образом:

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

Атрибут name узла field содержит строку, ссылающуюся на сериализуемое поле метки, а внутренний текст узла — это значение, которое следует применить к полю.

Валидаторы

Сериализуемые поля меток не поддерживают валидаторы, поскольку пользователь не может их редактировать.