我们正在开发一个聊天应用程序,我们现在正在支持多个房间。因此,我正在尝试弄清楚如何设置iron-router来正确地支持这一点。我设想的工作方式是,当用户创建一个房间时,会有一个推送到存储所有房间列表的数据库。也就是说。
rooms = {roomlist: ['room1', 'room2' ...]}
现在在Iron-Router中,我希望有一个如下所示的路由
Router.map(function () {
this.route('chatroom', {
path: '/chatroom/:room_name'
});
});并且路由器仅允许:room_name与数据库中的一个房间列表相匹配的路由。这是可能的吗?我如何设置它?
发布于 2014-06-26 01:18:14
我会有一个像这样的房间集合
Rooms = new Meteor.Collection("rooms");然后,当你插入一个新的房间时,给它一个名字。
别忘了发布你的单人房
Meteor.publish("singleRoom", function(room_name){
return Rooms.find({name: room_name});
})然后在你的路线中使用
Router.map(function () {
this.route('chatroom', {
path: '/chatroom/:room_name',
waitOn: function(){
return Meteor.subscribe("singleRoom", this.params.room_name);
},
data: function(){
return Rooms.findOne({name: this.params.room_name});
}
});
});https://stackoverflow.com/questions/24412543
复制相似问题