Я пытаюсь сделать встроенные твиты в своем приложении. У меня есть коллекция mongo твитов Ids (tweetId). Я использую (document) _id как id в div, чтобы Twitter мог настроить целевой элемент для твита.Как получить помощник для ожидания создания элемента DOM? [meteor]
шаблона:
{{#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.
Надеясь, что здесь есть лучший образец.
Я добавил console.log в onRendered и onCreated для тестирования, но кажется, что они запускаются только один раз. Я ожидал, что они будут запускаться для каждого элемента в коллекции через {{#each}}, но похоже, что dom обновлен, но шаблон не перерисовывается. В качестве второй попытки я перевел вызов twttr на метод на сервере, но, похоже, клиент является единственным, кто понимает эту библиотеку, поскольку я загружаю ее по сценарию в
– ppedrazziпо умолчанию, onRendered() будет запускаться только один раз. если все элементы DOM отсутствуют, когда он запускается, вы можете заставить его запустить снова, добавив что-то реактивное внутри автозапуска(), например Template.currentData() или find() (то есть независимо от источника ваших данных твита является). – zim
Спасибо zim. Будет играть с этим ... – ppedrazzi