如何知道我在模板中关注的dom节点何时呈现。我希望能够使用jQuery或template.find选择它并修改它或附加回调?我一直在使用Template.templateName.rendered,但它的命中或遗漏。有时即使呈现模板,我想要的元素也没有插入到dom中。如果我在template.rendered中的setTimeout持续2-3秒然后尝试选择一个元素,它几乎总是在那里,但这显然是一个kludge。
Template.templateName.rendered = ->
# This is a kludge!
wait 2000, =>
$(window).resize =>
# Neither of these selectors find anything without the wait
$iframe = $(this.find('#embed-html iframe'))
width = $('#embed-html').innerWidth()
resizeIframe($iframe, width)
$(window).resize()
答案 0 :(得分:1)
rendered
事件是执行此操作的正确方法,每次将模板插入DOM时都会触发。你有没有iframe尝试这样做? iframe可能会搞乱,在这种情况下,您可以尝试使用本地文档源测试iframe,以查看iframe的加载速度是否会影响find
方法返回元素的方式。
在与DOM交谈之前,你绝对不应该等待任何事情,所以发生了一些奇怪的事情。