WiX - 数据集不匹配

WiX - Dataset Mismatch

我有一个 website 用于我的戏剧学院,在主页上,我有一个幻灯片放映,在两个不同的幻灯片上有两个中继器连接到两个不同的数据集。我用它们来显示我的数据库集合中的事件 information/status。

Slide1: recentRepeater <-- recentDataset <-- myCollection (For Recent Events)

Slide2: upcomingRepeater <-- upcomingDataset <-- myCollection (For Upcoming Events)

问题

加载时,dataset2 数据显示在 repeater1 中,即最近的事件显示在即将发生的事件部分,并在完全加载后得到更正。作为网站上显示的第一件事,我不希望它变得混乱。这对我的网站有负面影响


工作原理

我已将事件的日期作为 YYYYMMDD 格式的数字存储在数据库中。例如:

20-April-2019 ---> 20190420

我已将数据集正确连接到转发器元素,将数据集结果限制设置为 2

我根据YYYYMMDD个数

排序要产生的结果

我生成了当天的 YYYYMMDD 格式编号,并通过 .setFilter() 函数

过滤了数据集产生的结果
$w("#recentDataset").setFilter(wixData.filter()
    .lt("dateNumber", YYYYMMDD_today)
)

$w("#upcomingDataset").setFilter(wixData.filter()
    .ge("dateNumber", YYYYMMDD_today)
)

我怎样才能防止这种情况发生..?

提前致谢

如果不实际使用您的网站,很难说出发生了什么。我认为您的两个数据集都连接到同一个集合。我猜问题是数据集只在页面加载后才被过滤。您可以通过在预览中将控制台切换到详细模式来验证这一点。

如果这确实是问题所在,我可以想到三种可能 fixes/workarounds:

  1. 在数据集设置中设置过滤器,而不是以编程方式设置它们。 (这是最简单的选择。)
  2. 在设置过滤器之前隐藏中继器。 (这有点骇人听闻。)
  3. 存储 return 由 setFilter 函数编辑的承诺,并使用 onReady() 中的 Promise.all() return 它们。 (这是最奇特的选项。我认为它会起作用,但如果您不需要 以编程方式设置过滤器,您不妨改为执行选项 1。)