La mayoría de los valores de campo están listos para concatenarse a tu cadena de código de inmediato. Sin embargo, algunos valores de campo requieren trabajo adicional antes de que se puedan usar.
Strings
Las cadenas deben encerrarse entre comillas con quote_
o multiline_quote_
antes de que se puedan concatenar. Estas funciones realizan la evasión de caracteres específicos del idioma, como reemplazar '
por \'
en JavaScript.
// 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'));
Variables
Para el campo de variable integrada, getFieldValue
muestra un ID de variable, no un nombre de variable. Para obtener un nombre de variable real, llama a getVariableName
en el generador de código. Esto muestra un nombre que es único y legal. Entre otras funciones, getVariableName
hace lo siguiente:
- Convierte los caracteres no ASCII en ASCII. Esto es necesario porque los usuarios pueden ingresar nombres de variables en su propio idioma. Por ejemplo, convierte “
متغير
” en “_D9_85_D8_AA_D8_BA_D9_8A_D8_B1
”. - Garantiza que los nombres de las variables sigan las reglas establecidas por los lenguajes de programación.
Por ejemplo, convierte los espacios en guiones bajos y agrega el prefijo
my_
a los nombres de las variables que comienzan con un dígito. - Resuelve conflictos con palabras reservadas o con otros nombres de variables o funciones.
Por ejemplo, convierte
for
afor2
.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
Menús desplegables
En el caso del campo desplegable integrado, getFieldValue
muestra una cadena neutral en cuanto al idioma que podría no ser directamente utilizable en el código. Por ejemplo, un menú desplegable que contenga operadores de comparación podría mostrar 'EQUALS'
, 'LESS'
o 'GREATER'
. Se puede usar para buscar una cadena que se usa en el código.
const OPERATORS = {
EQUALS: '==',
LESS: '<',
GREATER: '>',
};
const operator = OPERATORS[block.getFieldValue('OPERATOR')];
Casillas de verificación
Para el campo de casilla de verificación integrada, getFieldValue
muestra 'TRUE'
o 'FALSE'
.
La forma en que lo uses depende del significado de la casilla de verificación. Por ejemplo, puedes
usarla para la ramificación mientras generas código.