Giao diện
Câu hỏi thường gặp
Code không chạy, không có output?
- Kiểm tra lỗi syntax trong editor — Acorn linter sẽ hiển thị lỗi cú pháp bằng underline đỏ.
- Mở Developer Tools → Console để xem lỗi runtime chi tiết.
- Đảm bảo code thao tác
ctx.elementđể hiển thị output — nếu không ghi gì vào DOM, block sẽ trống.
requireAsync tải module thất bại?
- Kiểm tra tên module chính xác (phân biệt hoa thường).
- Đảm bảo kết nối internet ổn định — module tải từ CDN.
- Một số module không hỗ trợ RequireJS (AMD format). Thử module khác hoặc dùng phiên bản UMD.
ctx.currentRecord trả về undefined?
ctx.currentRecord chỉ có giá trị khi block JavaScript nằm trong context có record (VD: trong popup detail, trong form). Nếu block nằm ở trang chung (không gắn với record cụ thể), property này sẽ undefined.
Làm sao debug code trong JavaScript block?
- Thêm
console.log()trong code → xem output trong Developer Tools Console. - Dùng
try/catchđể bắt lỗi và hiển thị trênctx.element. - Plugin tự bắt lỗi runtime và hiển thị thông báo — nhưng thông tin lỗi chi tiết hơn nằm trong Console.
Code cũ (LowcodeBlockWidget) còn hoạt động không?
Widget LowcodeBlockWidget vẫn hoạt động cho backward compatibility nhưng không còn hiển thị trong menu "Add block". Block mới nên dùng JavaScriptBlockWidget.
Có giới hạn kích thước code không?
Code lưu trong block schema props (JSON string). Không có giới hạn cứng, nhưng nên giữ code ngắn gọn. Nếu logic phức tạp, cân nhắc tải code từ external source qua requireAsync.