Meteor:如何将上下文传递给另一个事件处理程序

时间:2016-06-16 20:46:13

标签: javascript meteor

我点击带有“forma”类的元素,然后创建一个窗口,在其中我单击带有“update-task”类的元素。在那个事件处理程序中,这= = undefined。 请告诉我如何将“.forma事件”的上下文传递给“.update-task event”

Template.myTemp.events({
 'click .forma': function() { 
    console.log(this._id); //show id
 }, 
 'click .update-task': function() { 
    console.log(this._id); //is undefined 
 } 
});

这是我模板中的代码

<ul>
  {{#each tasks}}
  <li>
    <i class="{{#if completed}} checked {{/if}} complete-task zmdi zmdi-badge-check" data-check="false" title="This task is completed"></i>
    <i class="{{#if priority}} checked {{/if}} priority-task zmdi zmdi-star-outline" data-check="false" title="Set high priority"></i>
    <i class="forma {{#if completed}} completed-task {{/if}}">{{task}}</i>
    <i class="delete-task zmdi zmdi-delete" title="Delete this task"></i>
    <!-- <i class="edit-task zmdi zmdi-edit"></i> -->
  </li>
  <hr>
  {{/each}}
</ul>
<div class="edit-popup-form">
  <form class="edit-task-form">
    <input id="edit-task" type="text" name="task" placeholder="Enter new task here..." autofocus required>
    <button type="submit">
      <i class="update-task zmdi zmdi-file-plus" title="Update current task"></i>
    </button>
    <i class="close-popup-form zmdi zmdi-close" title="Close this form"></i>
  </form>

在此代码中,我点击“任务内容”,然后看“编辑弹出窗体”,点击“添加任务”(丢失的上下文)

很抱歉代码的脏格式

1 个答案:

答案 0 :(得分:0)

我使用ReactiveVar作为我的模板,它很好用  Christian Fritz感谢您的帮助)