0
クリックイベントにMongoDBのIDを取得する:MeteorJSは、私は私のMeteorJSのアプリで、次のMongoのコレクションを持っている
//Server side, load all the images
Images = new Mongo.Collection('images');
Meteor.startup(() => {
if(Images.find().count() == 0){
for(var i = 1; i < 23; i++){
Images.insert({
src:"img_"+i+".jpg",
alt:"image "+i
});
}
}
});
私はテンプレートにそれを渡し、それが動作します。しかし、私は画像のMongoDB id
(MongoDBの主キー/一意のID)を取得したいと考えています。私は次のコードでそれを行います:
//Client side, get the collection and load it to the template
Images = new Mongo.Collection('images');
Template.images.helpers({images:Images.find()});
Template.images.events({
'click .js-del-image': (event) => {
var imageId = event._id;
console.log(imageId);
}
});
これは私にundefined
を与えます。私は間違って何をしていますか?私はthis._id
が私にMongoDB IDを与えるべきだと思った。レコードの
_id
属性を記入します:
<template name="images">
<div class="row">
{{#each images}}
<div class="col-xs-12 col-md-3" id="{{_id}}">
<div class="thumbnail">
<img class="js-image img-responsive thumbnail-img" src="{{src}}"
alt="{{alt}}" />
<div class="caption">
<p>{{alt}}</p>
<button class="js-del-image btn btn-warning">delete</button>
</div>
</div>
</div> <!--/col -->
{{/each}}
</div> <!--/row -->
</template>
これはMeteorJsとは関係ありません。とにかく、あなたのボタンにIDを渡すと、あなたのevebtにevent.target.idまたは$ event.currentTargetの属性があるかもしれません。 – iiro
ねえ、私はあなたが誤解していると思います。私はボタンのid属性をしたくない。 mongoDBから取得している画像のIDが必要です。これは、IDの値に基づいてDBから削除したいからです。質問を編集してより明確になるようにします。 – pydoge
私は理解しました。イメージidをボタンのidに置きます。 Id = "{_ id}"。私は最初に理解するためにmeteorjsチュートリアルを行うべきだと思います。 – iiro