【问题标题】:Template load event模板加载事件
【发布时间】:2012-08-05 13:03:07
【问题描述】:

我正在使用 Meteor,所以有人可以建议我在显示(未加载)模板后可以处理的事件是什么......? 例如,我有一个显示模式弹出窗口的模板。现在我想在模板“显示”(未加载)之后做一些事情。请建议我如何处理相应的事件。 我试过了,

<template name = "SendMessage">

//modal popup code
{{check}}
</template> 

Template.SendMessage.check = function(){
alert("load");
};

【问题讨论】:

标签: javascript html meteor


【解决方案1】:

假设您有一个模板,它只呈现一次,但想在 url 更改时做出反应,例如加载不同的模式等。 如果是这种情况,这是一种可能的方式。

Template.PageDetail.onRendered(function(){
    this.autorun(() => { 
        FlowRouter.watchPathChange();
        // do the thing!
        yourFunction();
    })
})

【讨论】:

    【解决方案2】:

    对于从 0.4.0 预览版开始的 Meteor,您可能希望使用 Template.myTemplate.rendered 并使用布尔值来跟踪 Template 对象中的状态(因此不会在每次模板的一部分被调用时调用它)更新):

    Template.myTemplate.rendered = function() {
        if(!this._rendered) {
          this._rendered = true;
          alert('load');
        }
    }
    

    【讨论】:

      【解决方案3】:

      您可以通过这种 hacky 方式实现:

      Template.SendMessage.check = function(){
         Meteor.defer(function(){ 
               //modal code
         });
      };
      

      或者更老套

      Template.SendMessage.check = function(){
        setTimeout(function(){    
               //modal code
         },0);
      };
      

      【讨论】:

        猜你喜欢
        • 2016-11-11
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 2021-07-31
        • 2021-05-19
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        相关资源
        最近更新 更多