观察到的变化'添加'回调所有项,即使是数据库中已经存在的项
ObserveChanges 'added' callback on all items, even that already exist in db
我在页面上有项目列表,我想在集合中添加用于检测插入的侦听器。
下面的代码在客户端
Messages.find().observeChanges({
added: function(){
console.log('Message added');
}
});
但若集合中已经存在项,则加载后页面将触发所有项的回调。为什么为集合中已经存在的项触发回调"added",以及如何仅检测真正新的插入?
有两种解决方案。对于第一个,请查看此处:https://github.com/oortcloud/unofficial-meteor-faq#why-does-observe-fore-a-bunch-added-events-for-existing-documents-
第二个是:
var isInitial = true
Messages.find().observeChanges({
added: function(){
if(!isInitial){
console.log('Message added');
}
}
});
isInitial = false
这是因为对observeChanges
的调用将在返回之前为Minimongo中已经存在的文档触发添加的回调(并且isInitial
将设置为false
)。
您可以尝试使用集合挂钩,这将完全符合您的要求:
https://atmospherejs.com/mrt/collection-hooks
不幸的是,这个软件包还没有更新到Meteor 0.9及更高版本。
相关文章:
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 按键时标记为ng的必填字段有效,即使是's是空的
- ajax请求返回me“;错误404”;即使资源存在
- 使用ajax验证的reCAPTCHA总是返回错误,即使是正确的
- 视频通过javascript被隐藏,但已经开始播放(自动播放模式),即使是's不可见
- 我无法获得热图.js即使是简单的热图也可以工作
- 在iframe中编辑另一个网页的样式的方法,即使是表面上的
- 页面上的任何按钮都会发送表单,即使是表单标记之外的按钮
- grunt是如何继续构建的,即使是grunt contrib符号链接也是如此;找不到路
- 在更改时,即使是动态插入的输入标记上的日期选择器的处理程序也不会;不起作用
- chrome setInterval()用于模糊选项卡无法正常工作,即使是1秒或更长时间
- 观察到的变化'添加'回调所有项,即使是数据库中已经存在的项
- 警告显示false,即使类存在
- this.props 属性的问题,即使它们存在
- 不能访问React对象状态上的object属性,即使它存在.返回未定义
- 在Javascript中强制使用十进制值,即使是整数
- Facebook发送对话框问题(我得到一般的错误,即使是最基本的发送链接)
- 即使数据存在,dojo dstore中的Get方法也不返回对象
- Javascript在两个函数后失败,即使是相同的函数
- Jquery ajax总是导致'error'即使是在有效的时候