Я расстраиваюсь из-за ошибки «Исключение в помощнике по шаблону» в приложении Meteor, которое я пытаюсь разработать.
В /lib/collections.js у меня есть:
Categories = new Meteor.Collection("categories");
Venues = new Meteor.Collection("venues");
VenuesAndUsers = new Meteor.Collection("venuesAndUsers");
В /server/main.js у меня есть:
Meteor.publish("Categories", function () {
return Categories.find({}, {sort: {order: 1}});
});
Meteor.publish("Venues", function () {
return Venues.find();
});
Meteor.publish("VenuesForUser", function () {
return VenuesAndUsers.find();
});
В /lib/router.js у меня есть:
Router.configure({
// Other stuff
waitOn: function() {
return [
Meteor.subscribe('Categories'),
Meteor.subscribe('Venues'),
Meteor.subscribe('VenuesForUser'),
];
}
});
В /client/templates/list.html у меня есть:
{{#each xzz}}
{{name}} - {{id}}<br />
{{/each}}
{{#each venues}}
{{venueId}} - {{userId}}<br />
{{/each}}
В /client/templates/list.js у меня есть:
venues: function() {
return VenuesForUser.find();
},
xzz: function() {
return Venues.find();
}
Мой вывод:
Venue 1 - Venue 1 id
Venue 2 - Venue 2 id
...
И в консоли javascript я получаю:
Exception in template helper: .venues@http://localhost:3000/app/client/templates/list.js?2a82ae373ca11b4e9e171649f881c6ab1f8ed69b:11:7
bindDataContext/<@http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:2994:14
...
Теперь моя проблема заключается в том, что моя публикация «VenuesFoUser» генерирует указанную выше ошибку при попытке доступа к ее содержимому.
Но почему!?
Изменить: если я изменю все экземпляры «VenuesForUser» на «VenuesAndUsers», подписка будет работать. Но как это понять? Могу ли я давать имена только тем подпискам, которые соответствуют коллекциям?