1

画像リンクを生成するために最初に使用されたデータベースエントリにhtml画像要素をリンクする方法を見つけようとしています。

私は Meteor を使用しています: - Flickr API からの写真セット データを含むデータベースがあります - HTML には、データベース内の各写真セットを反復処理し、この情報を使用して写真セットの html を生成するハンドルバー「各」スクリプトがあります。カバー画像リンク。- html がレンダリングされると、フォトセットのカバー画像が Flickr からダウンロードされ、画面に表示されます。

フォトセットのカバー画像をクリックすると、フォトセット内の写真へのリンクが自動的に生成されるようにしたいと考えています。しかし、html 画像要素を、画像リンクを生成するために最初に使用されたそれぞれのデータベース エントリに動的にリンクする方法がわかりません。後続のリンクの生成に必要な情報をロードできるように、元のデータベース エントリを見つけることができる必要があります。

これらすべての初心者として、どこから始めて何を試したらよいのかよくわかりません。各フォトセット画像の ID を「記憶」するために、カスタム キー ペアを使用してオブジェクトを作成することについて疑問に思いました。これは行くべき道ですか、それとも私が見落としているより簡単な方法はありますか?

ありがとう。

4

1 に答える 1

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

于 2013-05-16T07:36:38.053 に答える