我正在尝试在将数据添加到数据库时向用户显示警报.所以我写了(在客户端):
Meteor.autosubscribe(function() {
ItemCollection.find().observe({
added: function(item) {
// Alert code
}
});
});
Run Code Online (Sandbox Code Playgroud)
我发现,当一个新项目添加到服务器端的数据库时,不仅会显示警报(我认为这是正常的:))但是当我刷新页面时,还会为每个先前添加的项目显示警报.我想Meteor在启动时从Mongo数据库中获取所有数据(以填充本地Minimongo数据库),然后为本地数据库中添加的每个项目触发"已添加"事件.
但这是正常行为吗?如何只接收服务器上数据库中"真正"添加的项目?
las*_*igh 13
您正在观察客户端数据库的游标,并且该数据库可能无法在页面加载完成之后完成同步,因此该行为是有意义的.您可能希望查看明确订阅此问题的答案中讨论的集合.
如果您的数据有一个created_at字段,那么您可以观察页面加载后创建的项目.
ItemCollection.find({created_at : {$gt: some_current_time}}).observe({
added: function(item) {
// Alert code
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4319 次 |
| 最近记录: |