Wix.com запрос.Ошибка фильтрации скрипта нескольких категорий - PullRequest
0 голосов
/ 22 ноября 2018

Я создаю страницу wix.com с кодом wix.com, на котором должны отображаться некоторые продукты.На странице уже есть 3 выпадающих меню и 13 категорий, на которые можно нажать.После выбора переменной значение true и т. Д. Если выбрано не более 3 продуктов, продукт должен быть отфильтрован по выбранным категориям, отображая только те продукты, к которым применимы 3 категории.

Я получаю «Ошибка сценария», когда нажимаю кнопку фильтрации, но ничего не выбрано.Это работает, только когда «Picto5» и «Picto10» имеют значение true (показаны все элементы, имеющие одну из категорий ..: /)

функция экспорта FilterButton_click (event) {

//Pictogramme
var PictoFilter5 = (Picto5 === true)
? "Pictogramm5": undefined;
console.log(PictoFilter5);

var PictoFilter10 = (Picto10 === true)
? "Pictogramm10": undefined;
console.log(PictoFilter10);



//Dropdowns
var emotionValue = ($w('#EmotionDropdown').value !== "alle")
? $w('#EmotionDropdown').value
     : undefined;

var kategorieValue = ($w('#KategorieDropdown').value !== "alle") 
? $w('#KategorieDropdown').value 
    : undefined;

var dekoValue = ($w('#DekoDropdown').value !== "alle")
? $w('#DekoDropdown').value
     : undefined;

//Query
wixData.query("Steine")
    //Dropdowns
    .eq('grosse1', kategorieValue)
    .eq('pictogramm1', emotionValue)
    .eq('symbolSerieName', dekoValue)

    //Pictogramme
    .contains("kategorie1Sortierung", PictoFilter5)
    .contains("kategorie1Sortierung", PictoFilter10)

    .find()
    .then (res => {
            $w('#repeater1').data =res.items;
            console.log("Filtered to " + kategorieValue +" "+ dekoValue +" "+PictoFilter5+" "+PictoFilter10);
    })
     .catch( (error) => {
let errorMsg = error.message;
let code = error.code;

});}

Спасибо

1 Ответ

0 голосов
/ 29 ноября 2018

Глядя на ваш код, который вы пишете, у вас есть значение true или false в PictoFilter5 и PictoFilter10?Если это так, вы не сможете использовать .contains для проверки этих полей.Вам нужно иметь .eq для проверки логического поля.

wixData.query("Steine")
.eq('grosse1', kategorieValue)
.eq('pictogramm1', emotionValue)
.eq('symbolSerieName', dekoValue)

//Pictogramme
.contains("kategorie1Sortierung", PictoFilter5)
.contains("kategorie1Sortierung", PictoFilter10)

.find()
...