Felder sind ein wichtiger Teil der Codegenerierung, da sie Werte, die vom Nutzer bearbeitet werden können, z. B. Zeichenfolgen, Zahlen und Farben.
Wenn Sie Feldwerte in generierten Code einfügen, Umwandlung in eine brauchbare Zeichenfolge und Verkettung dieser Zeichenfolge mit dem den Rest des Codes.
import {javascriptGenerator} from 'blockly/javascript';
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
// Get the field value.
const fieldValue = block.getFieldValue('MY_FIELD');
// Concatenate the code.
const code = `some code ${fieldValue} some more code`;
// Return the code.
return code;
}
Werte abrufen
Auf Feldwerte kann über getFieldValue
zugegriffen werden. Vorteile
unterscheidet sich von Feld zu Feld. Daher sollten Sie die integrierten
Feld finden Sie Informationen zu Ihrem Fachgebiet. Für
Beispiel: Texteingabefelder geben genau den vom Nutzer eingegebenen Text zurück, aber das Drop-down-Menü
-Felder geben einen sprachneutralen String zurück, der mit dem Artikel verknüpft ist, den der Nutzer
ausgewählt.
Werte transformieren
Die meisten Feldwerte können sofort mit dem Codestring verkettet werden. Einige Feldwerte erfordern jedoch zusätzliche Arbeit, bevor sie verwendet werden können.
Strings
Strings müssen vom Codegenerator in Anführungszeichen gesetzt werden, bevor sie verkettet werden können.
// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));
// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));
Variablen
Variablennamen müssen vom Codegenerator bereinigt werden, bevor sie entfernt werden können. verkettet sind. Dies ist aus zwei Gründen erforderlich:
- Variablen werden vom Nutzer in der Sprache seiner Wahl eingegeben. Das bedeutet, dass sie
müssen möglicherweise in ASCII-Zeichen konvertiert werden. Beispiel: „
متغير
“ würde werden in "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1
" konvertiert. - Variablen können mit reservierten Wörtern in Konflikt stehen. Das bedeutet, dass sie möglicherweise
geändert werden, damit sie nicht miteinander in Konflikt stehen. Beispiel: „
for
“ in eine andere Währung „for2
“.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
Code verketten
Nachdem Sie den Wert Ihres Felds in einen String umgewandelt haben, können Sie und verketten Sie sie an der richtigen Stelle mit Ihrem Codestring.
const code = `some code ${value} some more code`;
Rückgabecode
Für verschiedene Arten von Blöcken muss der Code-String in unterschiedlichen Informationen hierzu erhalten Sie auf den jeweiligen Seiten: