Meteor中的自定义事件绑定

时间:2015-11-07 14:16:51

标签: javascript meteor javascript-events jquery-ui-sortable

我在Meteor的事件绑定中发现了一些奇怪的行为,我不确定是不是一个bug。首先,只是一些背景信息。我在列(funnelColumn模板)中有一堆卡片列表,每个列都包含一堆卡片(dealCard模板)。我使用Sortable来允许列表之间的拖放。现在,我想将更新的责任转交给dealCard模板,因此我只是使用$.trigger来传递数据。更具体地说,这就是它转换为代码的方式:

Template.funnelColumn.onRendered(function() {
  var columnName = template.data.model.name;
  Sortable.create(this.find('.deal-list'), {
    group: 'funnelColumns',
    onAdd: function(e) { $(e.item).trigger('onAdd', columnName); }
  });
});

实际问题

事情是,在那些情况下(使用自定义事件),Meteor的Template.prototype.events似乎没有做绑定。事件通常会冒泡,但处理程序并不总是(但也从未被调用)。

Template.dealCard.onRendered(function() {
  this.$('.deal-card').on('onAdd', function(e, data) {
    // binding here is okay
  });
});

Template.dealCard.events({
  'onAdd .deal-card': function(e, item) {
    // this handler only gets called sometimes
  }
});

我试着看一下Template.prototype.events代码,但Meteor的代码对我来说太复杂了。

0 个答案:

没有答案