Я только что обнаружил «блочный», и это именно то, что я искал, чтобы вывести свое веб-приложение на новый уровень. У меня проблема в том, что я действительно не понимаю, как я могу инициировать переменные кода python или js.
Вот мой блок:
Blockly.Language.myapp_ifdo = {
helpUrl: '',
init: function() {
this.setColour(210);
this.appendDummyInput()
.appendTitle("if")
.appendTitle(new Blockly.FieldDropdown([["Temperature", "Temperature"], ["Humidity", "Humidity"]]), "SENSOR")
.appendTitle(" ")
.appendTitle(new Blockly.FieldDropdown([["=", "="], ["≠", "≠"], ["<", "<"], ["≤", "≤"], [">", ">"], ["≥", "≥"]]), "OPERATOR")
.appendTitle(" ")
.appendTitle(new Blockly.FieldTextInput("0"), "SENSORVALUE");
this.appendStatementInput("DO")
.appendTitle("do");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
Рендеринг это:
Содержимое выпадающего списка:
Что я пытаюсь сделать:
Если выбрана «температура», я хочу инициализировать переменную в начале сгенерированного кода:
temperature = None
if temperature <= '30':
pass
То же самое, если выбрана «влажность»:
humidity = None
if humidity >= '60':
pass
В моем файле "template.soy" у меня есть это:
<block type="myapp_ifdo"></block>
Надеюсь, я достаточно ясно... Спасибо за вашу помощь!
С уважением,
if
, операторы равенства и переменные, поэтому вам не нужно создавать свои собственные. - person Justin Ethier   schedule 10.09.2013Blockly.Generator.workspaceToCode('Python');
, как это делает демонстрационное приложениеcode
? Встроенный генератор должен позаботиться о настройке этих объявлений за вас. - person Justin Ethier   schedule 10.09.2013workspaceToCode
непосредственно из кода вашего приложения. Как именно это сделать, зависит от вашего приложения, отправляете ли вы код на сервер с помощью AJAX, отображаете его пользователю и т. д. - person Justin Ethier   schedule 10.09.2013