Este é meu código, sempre que tento voltar para a opção todos ele retorna a página em branco. Já não sei o que fazer, ele seleciona todas as outras opções que tem no meu bd mas quando clico em todos ele retorna nulo, alguém poderia me ajudar?
import wixData from 'wix-data';
$w.onReady(async () => {
let dataset2 = new Array({ "label": "Todos", "value": "Todos" })
await wixData.aggregate("filterSup")
.group("categoria")
.run()
.then((result) => {
result.items.forEach((valor, index) => {
dataset2.push({ "label": valor._id, "value": valor._id })
})
})
$w("#dropdown1").options = dataset2
})
$w.onReady(async () => {
let dataset2 = new Array({ "label": "Todos", "value": "Todos" })
await wixData.aggregate("filterSup")
.group("subCategoria")
.run()
.then((result) => {
result.items.forEach((valor, index) => {
dataset2.push({ "label": valor._id, "value": valor._id })
})
})
$w("#dropdown2").options = dataset2
})
$w.onReady(function () {
//TODO: write your page related code here...
});
export function btnFiltrar(event) {
let termo1 = $w("#dropdown1").value === "" ? "" : wixData.filter().eq("categoria", $w("#dropdown1").value);
let termo2 = $w("#dropdown2").value === "" ? "" : wixData.filter().eq("subCategoria", $w("#dropdown2").value);
let filtro
if (termo1 !== "" && termo2 !== "") {
filtro = termo1.and(termo2)
} else if (termo2 !== "" && termo1 === "") {
filtro = termo2
} else if (termo1 !== "" && termo2 === "") {
filtro = termo1
}
$w("#dataset2").setFilter(filtro)
}
export function btnReset_click(event) { let reset $w('#dropdown1').value = "Todos"; $w('#dropdown2').value = "Todos"; $w('#dropdown1').resetValidityIndication(); $w('#dropdown2').resetValidityIndication(); }
Oi @Mag Cseh
Fiz uma pequena alteração no seu código. Você pode testar e passar o feedback.
import wixData from 'wix-data'; $w.onReady(async () => { let dataset2 = new Array({ "label": "Todos", "value": "Todos" }) await wixData.aggregate("filterSup") .group("categoria") .run() .then((result) => { result.items.forEach((valor, index) => { dataset2.push({ "label": valor._id, "value": valor._id }) }) }) $w("#dropdown1").options = dataset2 }) $w.onReady(async () => { let dataset2 = new Array({ "label": "Todos", "value": "Todos" }) await wixData.aggregate("filterSup") .group("subCategoria") .run() .then((result) => { result.items.forEach((valor, index) => { dataset2.push({ "label": valor._id, "value": valor._id }) }) }) $w("#dropdown2").options = dataset2 }) export function btnFiltrar(event) { let termo1 = $w("#dropdown1").value === "" ? "" : wixData.filter().eq("categoria", $w("#dropdown1").value); let termo2 = $w("#dropdown2").value === "" ? "" : wixData.filter().eq("subCategoria", $w("#dropdown2").value); let filtro = wixData.filter(); if (termo1 !== "" && termo1 != "Todos") { filtro = filtro.eq("categoria", termo1) } if (termo2 !== "" && termo2 != "Todos") { filtro = filtro.eq("subCategoria", termo2) } $w("#dataset2").setFilter(filtro) } export function btnReset_click(event) { let reset $w('#dropdown1').value = "Todos"; $w('#dropdown2').value = "Todos"; $w('#dropdown1').resetValidityIndication(); $w('#dropdown2').resetValidityIndication(); }
Espero ter ajudado!