Meteor.js onRendered &渲染 [英] Meteor.js onRendered & rendered

查看:44
本文介绍了Meteor.js onRendered &渲染的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

截至最近,meteor 的所有文档都指出 onRendered 是一种在模板完成渲染时获取回调的新方法.而 rendered 只是为了向后兼容.

As of recently all documentation of meteor states that onRendered is a new way to get a callback when template has finished rendering. and rendered is just for backwards compatibility.

但是,这似乎对我不起作用.onRendered 永远不会被执行,而 rendered 会.我有最新的流星版本 1.1.0.2

However, that just does not seem to work for me. onRendered never gets executed, while rendered does. I have newest meteor version 1.1.0.2

//only this is executed
Template.hello.rendered = function(){
  console.log('rendered');
}

//and this is not
Template.hello.onRendered = function(){
  console.log('onRendered');
}
//even if I comment first one out

您可以在此 github repo 中看到这两个正在运行的功能.是我做错了什么,还是这是 onRendered 的缺陷?

and both functions in action you can see in this github repo. Am I doing something wrong, or this is a defect in onRendered?

和第二个问题 - 我开始深入研究的原因 - 每次将 dom 元素添加/删除到我的模板时,我如何执行代码?rendered 在发生这种情况时似乎没有被调用.还有其他办法吗?

and second question - reason why I started to dig into this - how can I execute code every time an dom element is added/removed to my template? rendered does not seem to get called when that happens. Is there any other way?

推荐答案

onRendered 将函数作为参数.试试这个:

onRendered takes a function as an argument. Try this instead:

Template.hello.onRendered(function() {
  console.log('onRendered');
});

随着这个变化,你应该发现 renderedonRendered 都会被调用.另请注意,您现在可以为给定模板添加多个 onRendered 回调.

With that change, you should find both rendered and onRendered will be called. Also note that you can now add multiple onRendered callbacks for a given template.

这篇关于Meteor.js onRendered &渲染的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆