2016-07-06 37 views
1

我正在使用{{#each}}循环迭代div元素,具体取决于辅助函数返回的数组。现在我想保存元素的ID,当我点击一个按钮,例如当我点击第一个元素中的按钮时,那么点击按钮应该返回该元素的ID。从模板到流星js文件中的值

  <div class="row"> 
      {{#each db}} 
      <div class="col-md-4"> 
       <a href="#" class="product-name" id="packageSelected">{{ this.title }}</a> 
       <div class="small m-t-xs"> 
        {{this.description}} 
       </div> 
       <button class="btn btn-sm btn-primary" id="packageNext" value="{{this._id}}">Next</button> 
      </div> 
      {{/each}} 
     </div> 

当我点击按钮时,它只返回第一个元素的id而不是其按钮被点击的元素的id。

Template.package.events({ 
    'click #packageNext':function(event){ 
     event.preventDefault(); 
     var packageSelected=$("#packageNext").val(); 
     console.log(packageSelected); 
    } 
}); 

我试着用下面的代码来获得标题,但它是相同的。

Template.package.events({ 
    'click #packageNext':function(event){ 
     event.preventDefault(); 
     var packageSelected=$(".m-t-xs").text(); 
     console.log(packageSelected); 
    } 
}); 

回答

1

还有一种更简单的方法:在流星模板事件中,this将是当前的数据上下文。所以只是:

Template.package.events({ 
    'click #packageNext'(event) { 
    console.log(this); // the whole object 
    console.log(this._id); // the _id of the object 
    } 
}); 
+0

没错,这可能是更正确的解决方案。 –

+0

对于我来说,这两个答案都有效,但我认为这更合理。非常感谢这两个答案。 –