使用多个模板渲染一个集合
我正在构建一个新闻提要类型功能,它需要客户端呈现提要项目。 Feed 项目有不同类型,这意味着每种类型需要不同的模板。我目前正在使用 UnderscoreJS 模板,但对新想法持开放态度。
我使用的方法大致如下:
template : {
f : "<li> <%= item.user.name %> uploaded a file </li>", // file upload
m : "<li> <%= item.user.name %> just joined </li>", // just joined
p : "<li> <%= item.user.name %> - <%= item.data.txt %> </li>" // comment
}
var html="";
for(i in feeditems){
var item = feeditems[i];
html+= _.template(template[item.type], { item: item });
}
$('#container').html(html);
这是解决此问题的最佳方法吗?
I am building a news feed type feature which requires client-side rendering of feed items. There are different types of feed item which means each type requires a different template. I am currently using UnderscoreJS templating but am open to new ideas.
I am using a method roughly like this:
template : {
f : "<li> <%= item.user.name %> uploaded a file </li>", // file upload
m : "<li> <%= item.user.name %> just joined </li>", // just joined
p : "<li> <%= item.user.name %> - <%= item.data.txt %> </li>" // comment
}
var html="";
for(i in feeditems){
var item = feeditems[i];
html+= _.template(template[item.type], { item: item });
}
$('#container').html(html);
Is this the best way to address this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 Underscore.js 文档
模板
从我读到的内容来看,它应该非常有效。
很难说,最有效的方法就是对字符串进行硬编码不是吗?然而,根本不需要查找,有时最好牺牲一点效率以获得更具可读性的代码。
您有任何性能问题吗?如果你不这样做,我就不会担心。如果您这样做,我不会考虑这是否是最有效的模板,而是会分析应用程序,因为瓶颈很可能在其他地方。
From Underscore.js documentation
template
From what I read it should be very efficient.
Hard to say, the most efficient way would be to just hard code the string isn't? No lookups at all, however, sometimes it's better to sacrifice efficiency a bit to have more readable code.
Do you have any performance problem? If you don't, I wouldn't worry. If you do, instead of thinking if this is the most efficient template, I'd profile the application, because most probably the bottleneck is elsewhere.