У меня есть коллекции, которые публикуются на стороне сервера, и я использую waitOn железного маршрутизатора для подписки на эти коллекции. Однако на стороне клиента я никогда не вижу ссылок на коллекции, определенные на стороне сервера. Единственный способ получить к ним доступ — определить коллекцию на стороне клиента (devices = new Meteor.Collection('devices')), но я не вижу, чтобы кто-то делал это в своих онлайн-примерах. Вот код:
Код клиента:
Router.route('/devices', {
waitOn: function() {
return [
Meteor.subscribe('devices', Meteor.user()._id),
];
},
action: function() {
this.render();
}
});
Сторона сервера:
Devices = new Mongo.Collection("devices");
Devices.allow({
'insert': function (userId, doc) {
if (userId === doc.accountId) {
return true;
}
return false;
},
'update': function (userId, doc) {
if (userId === doc.accountId) {
return true;
}
return false;
},
});
Meteor.publish('devices', function(id) {
return Devices.find({accountId: id});
});
Я удалил автопубликацию, и из примеров в Интернете я должен просто ссылаться на Devices.find({}). Вместо этого я должен использовать devices = new Meteor.Collection('devices') , что затем вызывает проблемы, поскольку, если я вызову это снова, он скажет, что у меня уже есть коллекция с именем devices. Кто-нибудь знает, почему я не могу ссылаться на устройства?