{i>Field<i} adalah bagian penting dari pembuatan kode, karena mereka mendefinisikan nilai yang dapat diedit pengguna, seperti string, angka, dan warna (antara lain).
Menyertakan nilai {i>field<i} dalam kode yang dihasilkan melibatkan proses untuk mendapatkan nilai {i>field<i} tersebut, mengubahnya menjadi string yang dapat digunakan, lalu menyambungkan string tersebut dengan kode lainnya.
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;
}
Mendapatkan nilai
Nilai kolom dapat diakses menggunakan getFieldValue
. Apa yang didapatkan
yang ditampilkan berbeda di setiap kolom, jadi Anda harus memeriksa
kolom untuk mengetahui info tentang kolom spesifik Anda. Sebagai
misalnya, kolom input teks menampilkan teks yang sama persis dengan yang dimasukkan pengguna, tetapi
kolom menampilkan string netral bahasa yang terkait dengan item pengguna
dipilih.
Mengubah nilai
Sebagian besar nilai kolom siap untuk segera digabungkan ke string kode Anda. Namun, beberapa nilai kolom memerlukan upaya tambahan sebelum dapat digunakan.
String
String harus dikutip oleh generator kode sebelum dapat digabungkan.
// 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'));
Variabel
Nama variabel harus dibersihkan oleh generator kode sebelum dapat digabungkan. Hal ini diperlukan karena dua alasan:
- Variabel dimasukkan oleh pengguna dalam bahasa pilihannya. Ini berarti mereka
mungkin perlu dikonversi ke karakter ASCII. Misalnya, "
متغير
" akan dikonversi ke "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1
". - Variabel mungkin bertentangan dengan kata-kata yang dicadangkan. Ini berarti mereka mungkin perlu
dimodifikasi agar tidak menimbulkan konflik. Misalnya, "
for
" akan dikonversi menjadi "for2
".
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
Menggabungkan kode
Setelah Anda mendapatkan nilai {i>field<i} dan mengubahnya menjadi {i>string<i}, Anda bisa menyambungkannya di tempat yang benar dengan {i>string<i} kode Anda.
const code = `some code ${value} some more code`;
Kode status
Berbagai jenis blok memerlukan string kode untuk ditampilkan dalam berbagai cara, jadi periksa laman mereka masing-masing untuk informasi lebih lanjut: