尝试使用
添加到我非常简单的集合中Template.home.events({
'click #send-button': function(e, t) {
e.preventDefault();
msg = {
from: Meteor.user()._id,
to: Meteor.user().penpal,
sent: new Date(),
message: $('#message').val()
};
messages.insert(msg);
console.log(messages.find().fetch());
}
})
在collections.js我有
messages = new Mongo.Collection('messages');
messages.allow({
'insert': function (userId,doc) {
return true;
}
});
消息被插入但控制台显示每次都被覆盖,例如它添加了我的新消息,但也没有保留所有旧消息。当我尝试使用
呈现消息时Template.home.helpers({
'messages': function(){
return messages.find().fetch();
}
})
然后
{{#each messages}}...{{/each}}
在html中我看到眨眼间出现的消息然后再次消失。
请帮忙!我很绝望!
答案 0 :(得分:1)
基于Q& A,您似乎只需要发布该集合并订阅它:
服务器:
Meteor.publish('myMessages',function(){
const me = this.userId;
if ( me ){
return messages.find({ $or: [{ from: me },{ to: me }]});
}
this.ready();
});
(在上面的代码中,集合被过滤为与当前用户相关的消息,您可以根据需要定义自己的过滤器。)
客户端:
Meteor.subscribe('myMessages');