jqoteplus 是一个易用高效的JavaScript模板(client-side templating)
基于jQote2,根据天朝特殊环境针对ie进行了优化并简化了接口。
出于性能考虑加入了预编译工具,将模板转换静态的js文件。
模板的逻辑语法基于tag定义,默认是%
,一共两种定义方式<%
%>
和<%=
%>
。
在<%
和%>
之间执行任意的JavaScript代码,<%=
则表示输出=
第一个语句的内容。其他内容不做解析直接输出
在任意你可以获取到的容器上编写你的模板。
<script id="demo" type="text/x-jqote-template">
<h1><%=this.title%></h1>
<div>hello, <%=this.name || 'World'%></div>
</script>
html节点:
<div id="content"></div>
Javascript:
var data = [{
title: 'Demo',
name: 'Len'
},{
title: 'Demo2'
}];
var html = $('#demo').jqote(data);
$('#content').html(html);
结果:
<div id="content">
<h1>Demo</h1>
<div>hello, Len</div>
<h1>Demo2</h1>
<div>hello, World</div>
</div>
你也可以将模板定义在js中或者动态加载的结果中,再进行模板的编译调用。重复调用使用$.jqote(template, data)
的效率会比$(template).jqote(data);
好
var template = '<div>whos u <%=this.name%></div>';
var data = {
name: 'daddy'
};
var html = $.jqote(template, data);
$('#content').html(html);
jqoteplus是前端模板,所以你也可以嵌套调用模板
var template = 'jqoteplus is <%=this.name%> !<%=$("#demo").jqote(this.content);%>';
var data = {
name: 'amazing',
content: {
title: 'Demo',
name: 'Len'
}
};
var html = $.jqote(template, data);
$('#content').html(html);
$(template).jqote(data[, tag])
$.jqote(template, data[, tag])
$.jqotec(template[, tag])
$.jqotefn(template)
$.jqotetag(tag)
###$.jqote(template, data[, tag])
编译并且执行模板方法。返回执行结果(String)
Demo:
var template = "<h1><%=this.title%></h1>" +
"<div>hello, <%=this.name || 'World'%></div>";
var data = {
title: 'Demo',
name: 'Len'
};
var html = $.jqote(template, data);
$('#content').html(html);
###$.jqotec(template[, tag])
编译jqoteplus方法,返回编译后的方法
Demo:
var template = "<h1><%=this.title%></h1>" +
"<div>hello, <%=this.name || 'World'%></div>";
var lambda = $.jqotec(template);
jqoteplus使用 $.jqotecache
缓存已经编译的结果,这个方法可以获取缓存中的模板函数,没有编译过返回false
Demo:
var template = "<h1><%=this.title%></h1>" +
"<div>hello, <%=this.name || 'World'%></div>";
var data = {
title: 'Demo',
name: 'Len'
};
var html = $.jqote(template, data);
$.jqotefn(template);
Demo:
$.jqotetag('&');
jqoteplus预编译是基于Grunt的一个工具,jqoteplus-build
<script id="demo" type="text/x-jqote-template">
<h1><%=this.title%></h1>
<div>hello, <%=this.name || 'World'%></div>
</script>
编译后根据模板的id,可以直接调用模板。
$.jqote('demo', data);
jqoteplus.js is available under the terms of the MIT License.