xStore.filters
Bộ lọc của một danh mục: thương hiệu, khoảng giá, thuộc tính. Cấu hình KẾ THỪA từ danh mục cha.
Phương thức
| Phương thức | Cú pháp | Mô tả | Từ phiên bản |
|---|---|---|---|
forCategory |
xStore.filters.forCategory(categoryId): Promise<CategoryFilters> |
Ba nhóm bộ lọc của một danh mục: brands, prices, attributes. Rỗng = cả nhánh tổ tiên chưa cấu hình. | 2.1 |
Ví dụ đầy đủ
<script>
// Bộ lọc luôn gắn với MỘT danh mục. Cấu hình kế thừa từ danh mục cha,
// nên kết quả rỗng nghĩa là cả nhánh tổ tiên chưa cấu hình gì —
// KHÔNG phải dấu hiệu để gọi lại với id của danh mục cha.
async function renderFilters(categoryId) {
const bl = await xStore.filters.forCategory(categoryId);
document.getElementById('brands').innerHTML =
(bl.brands ?? []).map((h) => `<label><input type="checkbox" value="${h.id}"> ${h.title}</label>`).join('');
document.getElementById('prices').innerHTML =
(bl.prices ?? []).map((k) => `<label><input type="radio" name="price" value="${k.id}"> ${k.label}</label>`).join('');
document.getElementById('attrs').innerHTML =
(bl.attributes ?? []).map((t) => `
<fieldset>
<legend>${t.title}</legend>
${(t.options ?? []).map((o) => `<label><input type="checkbox" value="${o.value}"> ${o.label}</label>`).join('')}
</fieldset>
`).join('');
}
</script>
Thư viện gọi tới /api/... trên chính tên miền cửa hàng, nên không cần khai báo địa chỉ máy chủ ở bất kỳ đâu.
Xem thêm Sự kiện để giao diện tự cập nhật sau mỗi thao tác.