1
我想在我的应用程序中呈现嵌入的推文。我有一个鸣叫Ids(tweetId)的mongo集合。我使用(document)_id作为div中的id,以便Twitter可以针对推文的特定元素。如何让助手等待DOM元素被创建? [流星]
模板:
{{#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太快(即在dom元素存在之前从getelementbyid)?
挑战在于twttr为每个呼叫都需要一个唯一的dom ID。
希望这里有更好的模式。
我添加了一个console.log到onRendered和onCreated来测试,但它似乎只运行一次。我期望他们通过{{#each}}为集合中的每个项目运行,但似乎dom已更新,但该模板未重新呈现。作为第二次尝试,我将twttr调用移到了服务器上的一个方法中,但似乎客户端是唯一一个了解该库的人,因为默认情况下我通过脚本在
– ppedrazzi中加载它,onRendered()将只运行一次。如果所有的DOM元素都没有运行,你可以通过在autorun()中加入一些反应,如Template.currentData()或find()(无论你的tweet数据的来源是什么)是)。 – zim
谢谢zim。会玩那个... – ppedrazzi