Я новичок в Blockly и не могу найти способ получить значение поля раскрывающегося списка или флажка.
Давайте рассмотрим следующий сценарий (созданный с помощью blockly-dev-tools):
Blockly.Blocks['feature'] = {
init: function () {
this.appendDummyInput()
.appendField("Feature") // just for label
.appendField(new Blockly.FieldDropdown([["manufacturer", "feature_manufacturer"], ["profile", "feature_profile"], ["glas", "feature_glas"]]), "category"); // for dropdown values
this.appendValueInput("feature_name")
.setCheck("String")
.setAlign(Blockly.ALIGN_RIGHT)
.appendField("Name");
this.appendValueInput("feature_prio")
.setCheck("Number")
.setAlign(Blockly.ALIGN_RIGHT)
.appendField("Priorität");
this.appendDummyInput()
.setAlign(Blockly.ALIGN_RIGHT)
.appendField("Versteckt")
.appendField(new Blockly.FieldCheckbox("TRUE"), "hidden");
теперь получение значений из входных значений не является проблемой, вы можете получить их вот так:
const featureName = element.getInputTargetBlock("feature_name");
if (featureName) {
console.log(featureName.getFieldValue("TEXT"));
}
const featurePrio = element.getInputTargetBlock("feature_prio");
if (featurePrio) {
console.log(featurePrio.getFieldValue("NUM"));
}
, но у фиктивных входов, содержащих выпадающие списки или флажки, нет методов для предоставления выбранных значений.Возможно, это моя концептуальная ошибка при использовании фиктивных входов для размещения элементов, но при использовании ввода значений всегда есть те соски справа, которые являются устаревшими, поскольку значения предоставляются флажком или раскрывающимся списком.