使用模板事件侦听器删除Meteor.js集合时出现问题

时间:2014-12-01 05:05:28

标签: javascript mongodb templates events meteor

我对Meteor相对较新,并且在解决这个问题时遇到一些困难,所以也许有人可以很友善地让我知道我做错了什么。我已经在客户端/服务器可用的Meteor(mongo)集合中创建了一个项目列表。我想删除我在删除按钮旁边显示的项目。到目前为止我已经做到了这一点。我输入数据的第一部分工作正常,模板List确实显示了我的所有数据:

在我的html文件(client / list.html)

<template name=List>
  <table class="table">
    <tr>
      <td>Item</td>
      <td>Description</td>
    </tr>
    <tr>
      <td>{{itemName}}</td>
      <td>{{description}}</td>
      <button class="btn" id="delete" type="submit">Delete</button>
    </tr>
</template>

在js文件(client / list.js)

Template.quickList.events({
  'click #delete': function(e, t){
    cl = Lists.findOne(t.data);
    Lists.remove({_id: cl._id});
  }
});

注意:如果我尝试 console.log(t.data)

,我会在事件侦听器(在list.js文件中)中获取空值

不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

模板的事件地图处理的事件将在this关键字中提供模板的数据上下文。如果您的项目是数据上下文(如果您没有帮助者可能会获得itemNamedescription),则可以在事件处理程序中使用this._id

<tr>
  <td>{{itemName}}</td>
  <td>{{description}}</td>
  <button class="btn" id="delete" type="submit">Delete</button>
</tr>

事件:

Template.quickList.events({
  'click #delete': function(event){
    Lists.remove(this._id);
  }
});