Value Block
- 간단한 값 블록인 logic_null, text, math_number, logic_boolean에 대한 생성기를 빌드합니다.
- 값 블록은 값을 문자열로 포함하고 우선순위를 갖는 배열을 반환합니다.
- 여러 유형의 필드에서 getFieldValue를 사용합니다.
- getFieldValue는 지정된 이름의 필드를 찾아 해당 값을 반환합니다.
- getFieldValue의 반환 값 유형은 필드 유형에 따라 달라집니다.
1. Null
- 가장 간단한 블록은 logic_null 블록입니다.
- 'null'이라는 코드를 생성합니다.
- 모든 생성된 코드가 문자열이기 때문에 이것이 문자열이라는 점에 유의하세요.
jsonGenerator.forBlock['logic_null'] = function(block) {
return ['null', Order.ATOMIC];
};
2. String
- logic_null과 달리 이 블록에는 단일 텍스트 입력 필드가 있습니다.
- getFieldValue를 사용하세요. ex> const textValue = block.getFieldValue('TEXT');
- 생성된 코드에서는 문자열이므로 값을 따옴표로 묶어 반환합니다.
jsonGenerator.forBlock['text'] = function(block) {
const textValue = block.getFieldValue('TEXT');
const code = `"${textValue}"`;
return [code, Order.ATOMIC];
};
3. Number
- math_number 블록에는 숫자 필드가 있습니다.
- 텍스트 블록과 마찬가지로 math_number 블록은 getFieldValue를 사용할 수 있습니다.
- 텍스트 블록과 달리 함수는 JSON 코드에서 문자열이 아니기 때문에 추가 따옴표로 묶을 필요가 없습니다.
- 그러나 모든 생성된 코드와 위의 null과 마찬가지로, 함수는 생성기에서 코드를 문자열로 반환해야 합니다.
jsonGenerator.forBlock['math_number'] = function (block) {
const code = String(block.getFieldValue('NUM'));
return [code, Order.ATOMIC];
};
4. Boolean
- logic_boolean 블록에는 BOOL이라는 드롭다운 필드가 있습니다.
- 드롭다운 필드에서 getFieldValue를 호출하면 선택한 옵션의 값이 반환되는데, 이는 표시 텍스트와 다를 수 있습니다.
- 이 경우 드롭다운에는 TRUE와 FALSE라는 두 가지 가능한 값이 있습니다.
jsonGenerator.forBlock['logic_boolean'] = function(block) {
const code = (block.getFieldValue('BOOL') === 'TRUE') ? 'true' : 'false';
return [code, Order.ATOMIC];
};