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