Как связать изображение из автоформы с пользовательской коллекцией в CollectionFS для отображения изображения профиля?

Используя автоформу, я сохранил аватарку пользователя, которую он загрузил в коллекцию «изображений». Однако я не знаю, как вызвать загрузку этого конкретного изображения в шаблон. Следующее не отображает изображение в шаблоне. Однако если я изменю Images.find({'doc.metadata.ownerId':Meteor.userId()}); на Images.find(), тогда загрузятся все изображения, но я не могу указать, какое из них мне нужно.

this.Images = new FS.Collection("Images", {
  stores: [new FS.Store.GridFS("Images", {})]
});

Images.files.before.insert(function(doc) {
  doc.metadata = {
    date: Date.now(),
    ownerId: this.userId
             };
  console.log("before", doc);
  return doc;
});

Template.photos.helpers({
      Images: function () {
        Images.find({'doc.metadata.ownerId':Meteor.userId()});
                }
     });

person Geromephoto    schedule 05.06.2015    source источник


Ответы (2)


то, что вы делаете, это изображения, загруженные пользователем, вы добавляете идентификатор пользователя в качестве мета-значения и сохраняете его. Это позволит вам получить только все изображения, загруженные пользователем. Поскольку вы также используете временную метку, последняя будет самой последней картинкой профиля.

В качестве альтернативы в пользовательском документе добавьте поле photo к profile.

Таким образом, когда пользователь загружает фотографию, установите значение photo на ключ загруженного изображения и для отображения фотографии вы можете сделать

Images.findOne({ _id: Meteor.user().profile.photo })

Если вы используете автоформу, сохранить идентификатор изображения в profile.photo будет намного проще.

Надеюсь это поможет.

person kaoskeya    schedule 06.06.2015

Как насчет этого:

Template.photos.helpers({
  Images: function () {
    Images.find({'metadata.ownerId':Meteor.userId()});
  }
});
person Firdaus Ramlan    schedule 05.06.2015
comment
Это тоже не сработало, я собираюсь попробовать другой пакет для загрузки файлов с автоформой - person Geromephoto; 05.06.2015