2013-05-16 20 views
1

我想弄清楚如何將html圖片元素鏈接回最初用於生成圖片鏈接的數據庫條目。流星 - 如何將html元素鏈接到點擊事件的數據庫條目?

我使用流星: - 我有一個包含從Flickr API 的photosets數據的數據庫 - 在HTML,我有一個車把「每個」腳本通過數據庫中的每個photoset該迭代,然後使用該信息來生成photoset封面圖片鏈接的html。 - 當html呈現時,photoset封面圖片從Flickr下載並顯示在屏幕上。

我希望能夠點擊photoset封面圖片,然後自動生成photoset圖片的鏈接。但我不明白如何將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

相關問題