【发布时间】:2021-03-30 20:16:25
【问题描述】:
我目前正在编写一个使用转发器设置的搜索结果页面,以便转发器容器能够将用户重定向到动态页面。
转发器和动态页面上使用的数据集通过相关集合中的“数字”字段链接。因此,如果中继器在数字字段中显示“1”的详细信息,则用户可以单击容器框并重定向到“1”的动态页面。当我点击相关容器时,我已经成功地让这个工作正常,我被重定向到正确的动态页面。但是,转发器数据集中存在的某些数字在动态页面的数据集中不存在。所以我可以在中继器的数据集中有数字 1-50,但动态页面的数据集中只有 20 个存在,目前如果容器包含动态页面中不存在的数字,它仍然会尝试重定向,但只会导致 404 错误页面,我希望在这种情况下,容器根本不可点击。
到目前为止,我已经尝试过以下代码:
$w('#Dataset1').onReady(() => {
wixData.query('Collection1')
.eq('number', number1)
.find()
.then(res => {
const number1 = res.number1;
})
.catch ((err) => {
let errorMsg = err;
});
wixData.query('Collection2')
.eq('number', number2)
.find()
.then(res => {
const number2 = res.number2;
})
.catch ( (err) => {
let errorMsg = err;
});
if (number1 === number2){
$w("#container2").onClick( (event) => {
let $item = $w.at(event.context);
let currentItem = $item('#Dataset1').getCurrentItem();
let dynamicPageID = `${currentItem.number}`
let collectionID = `${currentItem.title}`
console.log('https://www.mywebsite.com/'+collectionID+'/'+dynamicPageID);
wixLocation.to('https://www.mywebsite.comk/'+collectionID+'/'+dynamicPageID);
});
}
});
}
但这仍然会重定向到该号码不存在的动态页面并发送到 404 错误!
谁能给我指出正确的方向吗?
谢谢
在 Sam 提出关于 async/await 的建议后,我一直在玩弄代码,但仍未找到可行的解决方案。我尝试了以下方法:
async function linktodynamicpage () {
$w('#Dataset1').onReady(() => {
wixData.query('Collection1')
.eq('number', number1)
.find()
.then(async(res) => {
const number1 = await res.number1;
})
.catch ((err) => {
let errorMsg = err;
});
wixData.query('Collection2')
.eq('number', number2)
.find()
.then(async(res) => {
const number2 = await res.number2;
})
.catch ( (err) => {
let errorMsg = err;
});
if (number1 === number2){
$w("#container2").onClick( (event) => {
let $item = $w.at(event.context);
let currentItem = $item('#Dataset1').getCurrentItem();
let dynamicPageID = `${currentItem.number}`
let collectionID = `${currentItem.title}`
console.log('https://www.mywebsite.com/'+collectionID+'/'+dynamicPageID);
wixLocation.to('https://www.mywebsite.comk/'+collectionID+'/'+dynamicPageID);
});
}
});
}
我已经尝试了一些变体,试图移动异步,但不幸的是无济于事。
只是想看看我的异步代码是否正确或是否有错误。这样,至少我知道 async/await 选项是否可以解决我的问题。
谢谢
【问题讨论】:
标签: repeater velo dynamic-pages