【发布时间】:2020-05-29 06:40:20
【问题描述】:
我正在尝试在函数执行其工作之前通过多引用字段过滤集合。
我使用了这个 wix 示例,但我不希望它过滤整个集合 https://www.wix.com/corvid/example/filter-with-multiple-options
我是新手,可能做错了这是我设法弄清楚的
import wixData from 'wix-data';
const collectionName = 'Blog/Posts'
//const collectionName = wixData.query('Blog/Posts').contains("categories", ["O -Fitness"]);
const fieldToFilterByInCollection = 'hashtags';
$w.onReady(function () {
setRepeatedItemsInRepeater()
loadDataToRepeater()
$w('#tags').onChange((event) => {
const selectedTags = $w('#tags').value
loadDataToRepeater(selectedTags)
})
});
function loadDataToRepeater(selectedCategories = []) {
let dataQuery = wixData.query(collectionName)//.contains("categories", ["O -Fitness"]);
if (selectedCategories.length > 0) {
dataQuery = dataQuery.hasAll(fieldToFilterByInCollection, selectedCategories)
}
dataQuery
.find()
.then(results => {
const itemsReadyForRepeater = results.items
$w('#Stories').data = itemsReadyForRepeater;
const isRepeaterEmpty = itemsReadyForRepeater.length === 0
if (isRepeaterEmpty) {
$w('#noResultsFound').show()
} else {
$w('#noResultsFound').hide()
}
})
}
function setRepeatedItemsInRepeater() {
$w('#Stories').onItemReady(($item, itemData) => {
$item('#image').src = itemData.coverImage;
$item('#title').text = itemData.title;
if ($item("#title").text.length > 40){
$item("#title").text =$item("#title").text.slice(0, 40) + '...' ;}
$item('#excerpt').text = itemData.excerpt;
if ($item('#excerpt').text.length > 100){
$item('#excerpt').text =$item('#excerpt').text.slice(0, 100) + '...' ;}
})
}
这是我正在尝试添加的评论位
const collectionName = wixData.query('Blog/Posts').contains("categories", ["O -Fitness"]);
提前致谢
【问题讨论】:
-
您能否详细说明其中的哪一部分不起作用?现在,既然您已经实施了您的解决方案,究竟是什么不起作用?
-
@vaibhavmande 对不起,而不是像这样阅读这个集合 ` const collectionName = 'Blog/Posts'` 我想预过滤名为类别的博客/帖子字段,键为 O -Fitness 这样但是它不起作用
const collectionName = wixData.query('Blog/Posts').contains("categories", ["O -Fitness"]);
标签: velo