使用artTemplate模版引擎
artTemplate 是腾讯公司出品的js模版引擎。laytpl
号称比 artTemplate
还快,这姑且不论了。在使用过 laytpl
和 artTemplate
之后,发现2者都有自己的优缺点。
artTemplate模板中不支持全局函数,官方说这是为了安全规范考虑,而laytpl就支持。
artTemplate
模版不支持全局函数,意味着某些js方法不能直接使用,只能使用 helper
来定义自定义函数。
template.helper('curTop', function (cur_top, i) {
i = isNaN(parseInt(cur_top))?0:parseInt(cur_top); //在artTemplate模版中无法使用js原生的isNaN、parseInt等方法
return i;
});
在模版中这样使用。
<% var i = curTop(cur_top);%>
artTemplate模版解析存在某种缺陷和bug,同样问题也存在于laytpl中。存在if else是大括号匹配闭合问题。
比如:
<% if(a) { %>
a is true
<% } %>
<% else { %>
a is false
<% } %>
这样会报模版引擎错误,只能这样折中解决:
<% if(a) { %>
a is true
<% } else {%>
a is false
<% } %>