Метеор - как связать элемент HTML с записью в базе данных по событию клика?

Я пытаюсь выяснить, как связать HTML-элемент изображения обратно с записью базы данных, которая первоначально использовалась для создания ссылки на изображение.

Я использую Meteor: - У меня есть база данных, которая содержит данные о фотосетах из Flickr API. - В HTML у меня есть скрипт "каждый" с рулем, который перебирает каждый фотосет в базе данных, а затем использует эту информацию для генерации HTML-кода для фотосета. ссылки на обложки. - При рендеринге html изображения обложки фотосета загружаются с Flickr и отображаются на экране.

Я хотел бы иметь возможность щелкнуть изображение обложки фотосета, а затем автоматически сгенерировать ссылки на снимки в фотосете. Но я не понимаю, как динамически связать HTML-элементы изображения обратно с соответствующими записями в базе данных, которые изначально использовались для создания ссылок на изображения. Мне нужно иметь возможность найти исходные записи базы данных, чтобы я мог загрузить информацию, необходимую для создания последующих ссылок.

Как новичок во всем этом, я не совсем уверен, с чего начать и что попробовать. Я задавался вопросом о создании объекта с пользовательскими парами ключей, чтобы "запомнить" идентичность каждого снимка фотосета. Это путь, или есть более простой способ, который я пропускаю?

Благодарю.

1 ответ

Решение

Скажем, у вас есть фотографии, выставленные таким образом:

Template.mytemplate.helpers({
    picture:function() {
        return pictures.find()
    }
});

Вы также можете сделать это вместо этого, что в значительной степени то же самое:

Template.mytemplate.picture = function() {
    return pictures.find();
}

С HTML

<template name="pictures">
    {{#each picture}}
        <img src="{{src}}" class="pictureselector"/>
    {{/each}}
</template>

Вы можете использовать события, которые могут получить данные из этого конкретного изображения документа / записи

Template.mytemplate.events({
    'click .pictureselector':function(event,template) {
        console.log(this._id); //Should give you the `_id` of the picture that was clicked

    }
});

this это контекст данных элемента, по которому щелкнули, и сгенерируйте нужную ссылку, используя данные внутри this,

Будьте осторожны, если вы используете что-то с обратным вызовом внутри клика, как Meteor.call, вам придется передать сообщение через var self = this в противном случае контекст this станет одним из Meteor.call

Другие вопросы по тегам