ctx.getVar()
Đọc giá trị biến bất đồng bộ từ ngữ cảnh runtime hiện tại. Nguồn biến giống với cách parse {{ctx.xxx}} trong SQL, template, thường đến từ user hiện tại, bản ghi hiện tại, tham số view, ngữ cảnh popup, v.v.
Kịch bản áp dụng
Định nghĩa kiểu
Giá trị trả về: Promise<any>, cần dùng await để lấy giá trị đã parse; trả về undefined khi biến không tồn tại.
Nếu truyền vào đường dẫn không bắt đầu bằng
ctx., sẽ ném lỗi:ctx.getVar(path) expects an expression starting with "ctx.", got: "...".
Đường dẫn biến thường dùng
ctx.getVarInfos()
Lấy thông tin cấu trúc (kiểu, tiêu đề, sub-property, v.v.) của các biến có thể parse trong ngữ cảnh hiện tại, tiện cho việc khám phá các đường dẫn khả dụng. Giá trị trả về là mô tả tĩnh dựa trên meta, không chứa giá trị runtime thực tế.
Định nghĩa kiểu
Mỗi key trong giá trị trả về là đường dẫn biến, value là thông tin cấu trúc tương ứng với đường dẫn đó (chứa type, title, properties, v.v.).
Tham số
Ví dụ
Khác biệt với ctx.getValue
Trong JSField, đọc/ghi field này dùng getValue/setValue; truy cập biến ngữ cảnh khác (như record, user, formValues) dùng getVar.
Lưu ý
- path phải bắt đầu bằng
ctx.: nhưctx.record.id, nếu không sẽ ném lỗi. - Phương thức bất đồng bộ: phải dùng
awaitđể lấy kết quả, nhưconst id = await ctx.getVar('ctx.record.id'). - Biến không tồn tại: trả về
undefined, có thể dùng??sau kết quả để đặt giá trị mặc định:(await ctx.getVar('ctx.user.nickname')) ?? '访客'. - Giá trị form:
ctx.formValuescần được lấy quaawait ctx.getVar('ctx.formValues'), không trực tiếp expose ractx.formValues. Trong ngữ cảnh form ưu tiên dùngctx.form.getFieldsValue()để đọc giá trị mới nhất theo thời gian thực.

