Kolom

{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:

  1. 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".
  2. 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: