2017-12-24 7 views
0

내 MeteorJS 응용 프로그램에서 다음 몽고 모음이 있습니다MeteorJS는 클릭 이벤트에 MongoDB의 ID를 얻을 수

//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 인 id)를 검색하려고합니다. 나는 다음과 같은 코드로 수행이 나에게 undefined을 제공

//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); 
    } 
}); 

. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 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> 
+0

이것은 MeteorJs와는 아무런 관련이 없습니다. 어쨌든, 이드에게 버튼을 주면 evebt에 event.target.id 또는 $ (event.currentTarget) .prop ('id') 속성이있을 수 있습니다. – iiro

+0

이봐, 네가 잘못 이해 한 것 같아. 나는 버튼 id 속성을 원하지 않는다. 내가 mongoDB에서 가져 오는 이미지의 ID를 원한다. 그게 내가 반복하는 것 (ID를 기반으로 DB에서 삭제하고 싶다)이기 때문이다. 나는 그 질문을 더 명확하게 편집 할 것이다. – pydoge

+0

나는 이해했다. 이미지 ID를 유트 버튼 id에 넣습니다. Id = "{_ id}". meteorjs 튜토리얼을 먼저 이해해야한다고 생각합니다. – iiro

답변

0

문제는 함수의 선언이었다

  • (event) => { ... }undefined_id을 갖고있는 것 같아요 .
  • function(event) {...}에는 올바른 컨텍스트가있는 것 같습니다.

추가 정보에 대한 (event) => {...}function(){...} 대 선언에 대한 this answer를 참조하십시오.