Javascript 观测变化';增加了';回调所有项,即使是数据库中已经存在的项
我有页面上的项目列表,我想为集合中的detect insert添加侦听器 下面的代码在客户端Javascript 观测变化';增加了';回调所有项,即使是数据库中已经存在的项,javascript,meteor,Javascript,Meteor,我有页面上的项目列表,我想为集合中的detect insert添加侦听器 下面的代码在客户端 但若集合中已经存在项,则加载后页面将对所有项启动回调。为什么要为集合中已经存在的项触发“添加”回调,以及如何只检测真正的新插入?有两种解决方案。关于第一个问题,请看这里: 第二个是: var isInitial=true Messages.find().observeChanges({ 新增:函数(){ 如果(!i初始){ console.log('messageadded'); } } }); isI
但若集合中已经存在项,则加载后页面将对所有项启动回调。为什么要为集合中已经存在的项触发“添加”回调,以及如何只检测真正的新插入?有两种解决方案。关于第一个问题,请看这里: 第二个是:
var isInitial=true
Messages.find().observeChanges({
新增:函数(){
如果(!i初始){
console.log('messageadded');
}
}
});
isInitial=false
这是因为对
observeChanges
的调用将在返回之前为已在Minimongo中的文档启动添加的回调(并且isInitial
将设置为false
)。您可以尝试使用collections挂钩,它将完全满足您的需要:
不幸的是,此软件包尚未更新,无法与Meteor 0.9及更高版本一起使用。暂时忽略添加的
机制,您试图实现什么?例如,您是否希望显示自特定模板被拒绝以来的所有新消息?我问这个问题是因为可能有一种比使用observeChanges
更简单的方法。第二种方法很好!我删除了我的答案,因为它:-/(虽然我在答案中提供的文档链接实际上使用了您的解决方案(虽然是服务器端),但我太傻了,看不见它:()
Messages.find().observeChanges({
added: function(){
console.log('Message added');
}
});