我正在尝试在我的应用程序中呈现嵌入式推文。我有一个mongo推特集合(tweetId)。我使用(document)_id作为div中的id,以便Twitter可以针对推文定位特定元素。
模板:
{{#each mongoCollectionOfTweetIds}}
<div id={{_id}}>
{{embeddedTweet}}
</div>
{{/each}}
在“embeddedTweet”帮助程序中,我运行:
targetElement = document.getElementById("#{this._id}")
twttr.widgets.createTweet("#{this.tweetId}", targetElement)
我知道this._id通过console.log测试是准确的。我还验证了寻找上面的dom元素最终未定义。
所以,似乎数据上下文是通过流星出现的,但我调用的是twttr太快(即在dome元素存在于getelementbyid之前)?
挑战在于twttr需要为每次通话提供唯一的dom ID。
希望这里有更好的模式。
答案 0 :(得分:0)
你必须等到模板被渲染之后才能追踪DOM元素。
Template.Foo.onRendered(function() {
});
在那里,您可以运行查询来查找您的DOM子项并调用twitter API。
帮助程序可以在数据更新和模板渲染时多次运行,因此在帮助程序中执行的任何操作都应该是幂等的。并且最好不要使用API。