2011-10-13 26 views
0

我正在构建需要客户端呈现项目的新闻Feed类型功能。有不同类型的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); 

这是解决这个问题的最好方法是什么?

+0

取决于......“高效”是指“快”还是意思是“最适合开发人员的生产力”?我建议任何将HTML模板置于JavaScript内部的东西对后者来说都是不好的。 – Domenic

回答

1

From Underscore.js documentation

模板

编译JavaScript的模板为可用于渲染评估功能。用于从JSON数据源渲染复杂的HTML数据。

从我读到的应该是非常有效的。

它是最高效的吗?

很难说,最有效的方法是只是硬编码的字符串不是?但是,根本没有查找,有时最好牺牲一点效率来获得更多可读代码。

你有任何性能问题?如果你不这样做,我不会担心。如果你这样做,而不是想这是否是最有效的模板,那么我应该对应用程序进行配置,因为很可能瓶颈在其他地方。