在MeteorJS中为同一个集合订阅了几个

时间:2015-08-21 12:48:37

标签: javascript meteor

我正在寻找通过MeteorJS实现以下任务的最佳方法。

要求如下:带有项目的列表和带有所选项目的侧栏(不需要从列表的当前页面开始)。

enter image description here

我需要将两个相同的Items集合发送给客户端:

  • 列表当前页面的项目
  • 侧栏的一个项目

我应该与出版物/订阅一起跳舞吗?

对我来说,如何正确地做到这一点并不明显。

目前我已为列表和所选项目添加了两个出版物,在客户端订阅了这两个出版物。因此,当我在客户端上执行Items.find()来填充列表时,它会返回列表页面项目+所选项目(“第5项”出现在第一页上)。

当所选项目应该在列表的当前页面上时(“项目2”),这是可以的,但是当所选项目不在那里并且它仍然被添加到当前页面时它不是正常的(“项目5”)

1 个答案:

答案 0 :(得分:0)

您使用两个出版物和两个订阅的方法是正确的。结果是客户端上的集合将包含来自两个pubsub的数据的并集。鉴于这两个发布执行不同的查询,您需要在客户端上使用两个视图在本地集合上执行相同的查询。正如@KassymDorsel所说,会话变量或反应变量可能对管理状态有用。