我们的网页上有一个div:
<div id="person-details">
<div></div>
...
</div>
我们使用以下jQuery代码从此div中选择相关元素:
var person = $("#person-details");
var children = release.find("div");
var fullname = children.first();
我们使用渲染函数执行ajax请求以获取我们存储在外部文件中的把手模板:
function _render() {
var templateScript;
template.getTemplate(filename).done(function(template) {
templateScript = Handlebars.compile(template);
fullname.html(templateScript(context));
});
}
模板如下所示:
<div>
<div>
<p>{{name}}</p>
</div>
<div>
<p>{{value}}</p>
</div>
</div>
调用渲染函数后,我们要从模板中选择任何元素。例如,我们尝试过使用:
fullname.children('div');
但由于内容是动态生成的,我们无法从DOM中获取节点。
甚至可以从生成的车把模板中选择这样的元素吗?
答案 0 :(得分:2)
感谢@DanielShillcock强调render()
是异步的。这是一个解决方案:
function _render() {
var templateScript;
template.getTemplate(filename).done(function(template) {
templateScript = Handlebars.compile(template);
selector.html(templateScript(attribute));
value = selector.find("div");
});
}