插入新对象时 Meteor 0.8.2 客户端集合为空

Posted

技术标签:

【中文标题】插入新对象时 Meteor 0.8.2 客户端集合为空【英文标题】:Meteor 0.8.2 client collection is empty when insert a new object 【发布时间】:2014-08-25 08:47:09 【问题描述】:

我正在开发一个使用流星 0.7.2 的项目,它运行良好。更新到 meteor 0.8.2 后,我遇到了一个问题。

当我立即从客户端向集合中插入一个对象时,集合为空,然后它正在重新加载数据。当我更新集合对象时,有时也会发生这种情况。

这只发生在一个集合上。其他集合工作正常。

我正在使用 iron-routerJQuery Sortable

有人可以帮我解决这个问题吗? (我觉得在插入或更新时minimongo和master之间发生了冲突。如果是这种情况,为什么会发生这种情况)

【问题讨论】:

你能分享一些你的代码吗?尤其是发布、订阅、模式和插入 我的猜测是 - 0.7.2 使用了 Spark,0.8.2 使用了新的渲染引擎 Blaze。因此,在新的渲染引擎 Blaze 上,您的 jQuery-Sortable 集成被破坏了。 不确定它如何影响收集状态。 【参考方案1】:

如果您可以共享可以重现该行为的代码,那就太好了。 您可以创建一个只有此集合的新流星 0.8.2 应用程序,看看您是否能够隔离错误。

顺便说一句,有这个问题的集合的名称是什么?

【讨论】:

【参考方案2】:

你确定它是空的吗? mongo上也是空的吗?如果不是,请尝试在客户端创建 CollectionName.find(),例如在 Chrome 控制台中。

您是否删除了不安全和自动发布?如果您在客户端使用插入,则必须记住在服务器端使用 Meteor.allow 进行该集合。

【讨论】:

【参考方案3】:

您可以通过添加以下流星包来查看订阅的数据

流星添加 msavin:mongol

安装后,按 Control + M 切换。

其他详情https://github.com/msavin/Mongol

或下载this并安装并使用凭据运行。您可以检查本地数据库

【讨论】:

以上是关于插入新对象时 Meteor 0.8.2 客户端集合为空的主要内容,如果未能解决你的问题,请参考以下文章

在新数据到达 Meteor 时对其进行动画处理

如何按插入时间对 Meteor 集合进行排序?

当我在严格的客户端集合上调用更新/插入时会发生啥?

为啥 Meteor 抱怨集合的插入方法已经定义?

当一个集合被修改时,meteor 向客户端推送了多少数据?

Meteor - 构建和使用集合