我正在使用带有flashMessage的Meteor.js构建一个应用程序,以显示用户的信息性消息。目前,该消息与单个用户的点击事件相关联,但我想为所有用户显示该消息。
有没有办法使用Meteor和flashMessages来实现这一目标?或者应该使用另一个包?
干杯。
答案 0 :(得分:1)
可能有多种方式,但这里有一种方法,使用一组消息:
普通的:
Messages = new Meteor.Collection('messages');
客户端:
if (Meteor.isClient()) {
Meteor.subscribe('messages');
var msgs = Messages.find();
msgs.observeChanges({
added: function(id, obj) {
FlashMessages.sendInfo(obj.text);
}
});
}
服务器:
if (Meteor.isServer()) {
Meteor.publish('messages', function() {
return Messages.find();
});
}
然后只需将{text: "my text"}
之类的邮件插入Messages
集合中,它们就会显示在所有客户端上。
PS:您可能希望在一段时间后再次删除插入的消息,否则任何新到达的客户端都将显示所有过去的消息。或者,您可以订阅最近的消息。