velo - 按多参考字段过滤集合
问题描述
我试图在函数完成工作之前通过多引用字段过滤集合。
我使用了这个 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"]);
提前致谢
解决方案
您使用“hasAll”过滤多参考字段。'hasSome' 处理多引用,但 'hasAll' 不处理此字段类型。
您可以使用:
selectedCategories.map(category => {
dataQuery = dataQuery.hasSome(fieldToFilterByInCollection, category)
})
这与 hasAll - hasSome(x) & hasSome(Y) = hasAll(x,y) 相同 - 但因为 'hasSome' 正在处理多引用,所以它会起作用:)
推荐阅读
- python - “NoneType”对象没有“查找”属性。当试图用美丽的汤刮
- sql - 数据完整性错误查询修复以重写 sql
- c - 在可变参数函数中使用可变参数函数
- titanium - 如何在 appcelerator Titan 项目中禁用 Ti.UI.iOS.createDocumentViewer 中的上下文菜单?
- javascript - 如何在使用 JS 或 Jquery 悬停时向相应的 div 容器显示文本?
- java - 在我的 Macbook 上安装 PROM 时出现 Java 错误
- java - 将异常从匿名接口传递给方法签名
- python - 用 Python 计算
- android - 编译自定义 rom 时出错我尝试为我的设备编译 android 但没有任何效果
- python-3.x - python 2和python 3中的urlencode方法有区别吗