2013-05-16 3 views
1

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

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

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

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

Спасибо.

ответ

3

Скажем у Вас есть свои фотографии высовываясь так:

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

+0

Это работает - спасибо! Я немного озадачен, как это работает на самом деле - база данных _id встроена в html-документ при визуализации? – shongololo

+1

Его не в html, обработчик события знает контекст данных html, в котором происходит щелчок, поэтому он знает, что будет в {{#each}} .. {{/ each}} в терминах его данных – Akshat

 Смежные вопросы

  • Нет связанных вопросов^_^