Velo 4用于筛选中继器的复选框组

Velo 4用于筛选中继器的复选框组,velo,Velo,我想为不同的过滤器创建一个包含3个不同复选框组的配方页面 目前,我有一个复选框组,并将其链接到一个中继器 有谁能帮我指导如何在中继器上再添加两个复选框组 我在网上进行了挖掘,但还没有找到解决办法 从“wix数据”导入wixData; const databaseName='Recipes1'; const databaseField='tags'; $w.onReady(函数(){ $w('#checkboxGroup1')。onChange((事件)=>{ const selectedBox=

我想为不同的过滤器创建一个包含3个不同复选框组的配方页面

目前,我有一个复选框组,并将其链接到一个中继器

有谁能帮我指导如何在中继器上再添加两个复选框组

我在网上进行了挖掘,但还没有找到解决办法

从“wix数据”导入wixData;
const databaseName='Recipes1';
const databaseField='tags';
$w.onReady(函数(){
$w('#checkboxGroup1')。onChange((事件)=>{
const selectedBox=$w(“#checkboxGroup1”).value;
addItemstoRepeater(selectedBox);
})
});
函数addItemstoRepeater(selectedOption=[]){
让dataQuery=wixData.query(databaseName);
如果(selectedOption.length>0){
dataQuery=dataQuery.hasSome(databaseField,selectedOption);
}
数据查询
.find()
。然后(结果=>{
const filtereditemsReady=results.items;
$w(“#repeater1”)。数据=filtereditemsReady;
})
}

您所做的是一个数据查询,根据用户选择获取项目

为了构建过滤器,您需要使用、或表。视图a显示了如何使用多个选择筛选数据集

从我的角度来看,3个复选框组的筛选函数应该如下所示

let checkbox1;
let checkbox2;
let checkbox3;

const filter = (ck1, ck2, ck3) => { 

    if(checkbox1 !== ck1 || checkbox2 !== ck2 || checkbox3 !== ck3) {
        let newFilter = wixData.filter();

        if(ck1)
        newFilter = newFilter.hasSome('fieldKey1', ck1);
        
        if(ck2)
        newFilter = newFilter.hasSome('fieldKey2', ck2);
        
        if(ck3)
        newFilter = newFilter.hasSome('fieldKey3', ck3);
        
        $w("#datasetId").setFilter(newFilter);
        
        setVariables(ck1, ck2, ck3);
    }
}

const setVariables = (ck1, ck2, ck3) => {
    checkbox1 = ck1;
    checkbox2 = ck2;
    checkbox3 = ck3;
}

您需要学习示例以根据需要调整代码。

您所说的组是什么意思?中继器呈现项目,而不是组。不幸的是,没有“中继器中的中继器”。您可以手动添加更多的中继器,每个可能的组一个。哦,我的道歉。我的意思是我希望再创建两个复选框来过滤repeater表。例如,用户可以按菜肴(复选框1)、菜肴类型(复选框2)和配料(复选框3)过滤表格。之后,表格将根据用户选择显示REULT