В приложении, которое я создаю, есть коллекция игр. Каждый объект в этой коллекции содержит массу данных, связанных с ним. Настолько, что при перечислении игр для каждого пользователя я должен ограничить поля, которые я им отправляю. Это все обычное дело и прекрасно работает. Проблема возникает, когда я хочу получить больше полей для конкретной игры, скажем, когда я иду на ее страницу, мне нужно больше, чем просто описание и имя.Получение дополнительных полей для объекта minimongo с использованием публикации-публикации Meteor
Ниже приводится публикация для списка игр, за которой следует публикация, которую я пытаюсь использовать для обновления документа со всеми полями.
Meteor.publish('games', function() {
return Games.find({owner: this.userId}, {fields: {
name: 1,
description: 1
}});
});
//Publish all the fields for the given game
Meteor.publish('game', function(gameId) {
return Games.find({_id: gameId});
});
Мое понимание публикации подписываться функциональности Метеор является то, что второй публиковать обновит Games minimongo коллекции, давая новые поля объекта в коллекции.
Однако мое понимание кажется ошибочным, или есть что-то с моей реализацией, это неправильно.
Когда я регистрирую коллекцию игр console.log(Games)
на странице списка, где я подписываюсь на публикацию «игр». Я получаю то, что я ожидал, коллекцию, содержащую все игры, принадлежащие текущему пользователю. Все документы имеют только имя и описание, как ожидалось.
Когда я иду на страницу игры, где я подписываюсь на «игру». Коллекция неожиданно меняется. Когда я делаю тот же журнал, что и выше, я получаю коллекцию, которая имеет только один объект, но имеет все поля. Это не то, что я ожидал, но он работает для того, что мне нужно.
Проблема возникает после этого. Когда я делаю клиентскую сторону, выберите (ниже) на minimongo collectciton. Я получаю объект, который имеет только описание и имя.
game:() => {
return Games.findOne({_id: $stateParams.gameId});
}
Я делаю находку на colleciton, который имеет объект со всеми полями, которые я хочу, но объект избранного возвращаются только имеет два поля я определен заранее.
Я потерялся относительно того, как заставить это работать, и проблемы, возникающие у меня, бросают мое понимание функции публикации подписки в «Метеор» из окна.
я могу добавить некоторые скриншоты объектов коллекции в консоли браузера при необходимости
Любые идеи или предложения попробовать?
EDIT: Вот два лог с моей угловой compenets, который показывает подписываться:
игр: https://gist.github.com/Jiig/f9577469d868a3165221
игр: https://gist.github.com/Jiig/70dce515581ce12beb6f
Вы используете железный маршрутизатор? –
@MichelFloyd Нет, используя ui-router с угловым на клиенте. – Jiig
Все зависит от того, на что вы подписаны, и какой шаблон был отображен (если вы подписались на 'template.onCreated'). Можете ли вы поделиться образцом ваших шаблонов с подпиской? – lucascurti