为多个模板使用1个事件处理程序

时间:2017-11-05 05:19:36

标签: javascript meteor meteor-blaze

我一直在使用通常的Blaze Template.events处理事件的方式。目前,我在多个模板中有许多相同的事件。

我很好奇是否有人知道如何为处理多个模板的事件,而不必为每个不同的模板使用多个Template.events调用

(你可以编写一个事件处理程序来应用于多个模板)。

如果我改用Meteor-React,我认为可以这样做,但我宁愿不这样做。

1 个答案:

答案 0 :(得分:3)

您可以使用名为meteor-body-events

的此程序包

meteor add gwendall:body-events

他们的git页是:https://github.com/gwendall/meteor-body-events

我在之前的项目中使用它并且它按预期工作,但现在我看到该项目已不再维护。我相信它仍然可以按预期工作。

他们的git页面示例:

Template.body.events({
  "click .btn": function(e, data, tpl) {
    // e -> jquery event
    // data -> Blaze data context of the DOM element triggering the event handler
    // tpl -> the parent template instance for the target element
  }
})

所以基本上,你将事件监听器标记为一次,它将适用于所有模板。