Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 如何在更改路由时清除本地客户端minimongo数据?_Meteor - Fatal编程技术网

Meteor 如何在更改路由时清除本地客户端minimongo数据?

Meteor 如何在更改路由时清除本地客户端minimongo数据?,meteor,Meteor,我正在两个单独的页面上实现无限滚动(通过设置出版物的会话限制)——我们称之为第一页和第二页。每个页面都有自己的订阅,都是从同一个集合发布的,但包含不同的数据子集。假设第一页按以下顺序接收这些文件: A, B, C, D, E, F.... 第二页收到: E, B, G, H, K... 一些项目将出现在两个页面上,在本例中,这些项目将是E、B、G。现在的问题是,一旦我访问了第二页并返回到第一页,第一页上项目的顺序现在更改为: E, B, G, A, C, D... 正如您所看到的,所有公共

我正在两个单独的页面上实现无限滚动(通过设置出版物的会话限制)——我们称之为第一页和第二页。每个页面都有自己的订阅,都是从同一个集合发布的,但包含不同的数据子集。假设第一页按以下顺序接收这些文件:

A, B, C, D, E, F....
第二页收到:

E, B, G, H, K...
一些项目将出现在两个页面上,在本例中,这些项目将是
E、B、G
。现在的问题是,一旦我访问了第二页并返回到第一页,第一页上项目的顺序现在更改为:

E, B, G, A, C, D...
正如您所看到的,所有公共项(E、B、G)现在将按照如上所示的顺序首先显示在列表上,即使发布中的数据之前已经从服务器中进行了排序。我尝试通过使用
.find({},{sort:{createdAt:-1}},{limit:limit})
从helpers中的客户端对其进行再次排序来修复它,这似乎解决了问题,但出于某种原因,它也破坏了所有无限滚动

我试图理解是什么导致了这种情况,我怀疑这是因为公共文档是从它之前的页面缓存在客户端本地minimongo中的。我还尝试通过为订阅分配句柄来停止订阅,然后在订阅上使用
.stop()
,但没有清除数据


我是新来的流星。有人能告诉我一种方法,在更改路由时有效地清除所有本地客户端数据吗?

您能添加您的发布和订阅代码吗。如果没有代码,真的很难弄清楚发生了什么……在翻阅了之前的文章之后,我发现其他人也有同样的问题,这只是一个语法问题。我上面代码中的“limit”参数应该这样定位:
.find({},{sort:{createdAt:-1},limit:limit})
。我解决了这个问题,现在一切都正常了。我还了解到,发布时是否已经在服务器上对数据进行了排序并不重要,但在订阅该数据时,仍然需要在客户端对其进行再次排序。