Метеор - как связать элемент 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