【发布时间】:2013-09-03 20:19:00
【问题描述】:
我目前正在使用下划线模板来呈现一个显示联系人列表的 HTML 列表。
模板看起来像这样:
<li>
<span class="name">Name: <=%data.name%></span>
<span class="email">Name: <=%data.email%></span>
<img class="avatar" src="<=%data.avatar%>"></img>
</li>
问题是,当我设置模板数据时,将不知道图像的来源。为什么?因为我的数据看起来像这样:
contact = {
name: string, // i.e. 'John Doe'
email: string, // i.e 'john@doe.com'
avatar: string // i.e. '11a93150-14d4-11e3'
}
头像实际上不是一个 URL,而是一个需要获取的远程数据库的链接。比如:
function getAvatar(uuid, cb) { // uuid is something like 11a93150-14d4-11e3
window.db.getImageUrl(function(url) {
cb(url); // url is something like http://foo.com/avatar.png
});
}
问题是,有没有办法编写我的模板,而不是直接读取联系人对象的头像值,我可以嵌入对 getAvatar 之类的函数的引用,当模板被渲染时,获取 url 到图片并设置头像图片网址?
提前致谢
【问题讨论】:
-
嗨,这是我认为可行的方法:jsfiddle.net/8EKmC 我还没有弄清楚,一旦我有了 URL,如何获取元素并将其设置为 src属性。不幸的是,当模板形成时,它对 DOM 一无所知:o
标签: javascript ajax image templates underscore.js