【问题标题】:Meteor Dynamic Template EventsMeteor 动态模板事件
【发布时间】:2014-04-01 23:32:55
【问题描述】:

我是 Meteor 的新手,我找不到足够的答案,但是如何以编程方式引用模板的事件处理程序。

例如,我想添加或更新或触发模板中定义的事件,而不是实际作为示例(按下或单击按钮)。

在 Template 对象中,我可以看到下面的 events 对象,我可以访问它,但这是正确的方式吗?

Template.myTemplate._tmpl_data.events[]

谢谢!

【问题讨论】:

    标签: templates meteor


    【解决方案1】:

    您可以在事件映射之外定义处理程序并将其作为函数调用:

    someHandler = function(this, evt,tpl) {
      // do something with this, evt, and tpl
    }
    
    Template.myTemplate.events({
      'click .myButton': function(event,template) {
        var self = this;
        return someHandler(self, event,template);
      }
    });
    
    // Call someHandler whereever you want passing in whichever args you want
    

    这不是一个完整的示例,但应该能够让您朝着一些可行的方向前进。如果可行,请编辑此答案以反映更完整的示例。

    【讨论】:

    • 我真的不明白这个解决方案,如果我调用 someHandler 本身,上下文将会丢失。最简单的方法是使用 jquery,例如触发点击事件。我希望寻找一些东西来动态访问和/或创建模板事件,就像我可以动态创建和访问新模板一样......请参考下面的链接:Dynamic Templatesstackoverflow.com/questions/13550775/…
    • 您可以在没有上下文的情况下使用事件函数,这样您就可以在函数内控制它并触发无上下文版本。实际上,您可以使用 jQuery 作为模板中的选择器。但我认为你正在尝试做一些我不太清楚的事情。您是指触发事件本身还是事件处理程序?我的例子是处理程序。如果您只想触发一个事件(例如单击),您可以使用纯 jquery,这也将通过您的事件处理程序定义进行处理。
    • 好的..我明白了。我正在尝试将 PubNub 集成到我的 Meteor 应用程序中,并基于某些 pubnub 消息触发模板事件.....谢谢这给了我一些想法!
    • 太棒了!需要我更新答案吗?您还可以继续使用一些相关信息对其进行更新,并将其标记为已回答,以便阅读这篇文章的其他人知道如何解决类似问题。
    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多