问题 Meteor js模板渲染vs onRendered


工作正常后

Template.name.rendered = function(){    ..... }

我改为:

Template.name.onRendered(函数(){    ..... })

但我没有相同的结果,我没有找到太多关于差异的文档,有人会帮助我吗?或者有人知道我在哪里可以看到差异?


11986
2018-04-22 22:00


起源

你能描述一下你正在经历的不同行为吗? - Tomasz Lenarcik
就像在onRendered数据没有在渲染中一样到达,我必须刷新以获得正确的数据,但也许我使用的方式是错误的(因为api改变了),我希望看到在某些地方的差异,但我没有找到太多的文件:( - Zilev av
两者之间没有区别 rendered 和 onRendered,它应该是完全相同的API。 - saimeunt
它们应该是等价的并产生相同的结果。你能在渲染函数中发布你的代码吗? - Jeremy S.
@zilevav看看实现 这里 这两个“用途”之间没有任何区别,除非你将它与某些旧版Meteor的行为进行比较。 - Tomasz Lenarcik


答案:


在Meteor 1.0.4中 rendered 被弃用并替换为 onRendered

将onRendered,onCreated和onDestroyed方法添加到Template。不推荐对Template.foo.rendered等进行分配,但仍支持向后兼容性。   资源: History.md

如果您在使用时看到“错误”的行为 onRendered 请确保您使用的是Meteor 1.0.4或更新版本。


16
2018-04-23 07:29



我正在使用Meteor 1.2.1并且onRendered根本不会触发,而渲染的确如此:( - Predrag Stojadinović
嗨@PredragStojadinović,我发现了同样的问题。使用onRendered它根本就不起作用。我正在使用一系列的collection.find调用并使用jquery更新DOM。渲染它工作得很漂亮。然后我发现了我的错误......我已经使用了Template.name.onRendered = function(){.....},只更改为onRendered呈现的内容,而不是将其用作回调,如Template.name.onRendered(函数) (){.....})。不使用“=”。纠正后,它开始正常工作。 - Juliomac