前端js模板库 JinkoTemplate

有时候需要使用ajax来异步生成html,最土的方法就是用js的‘+’连接html代码,生成繁琐。一旦需要修改,对于少量的html代码到没啥问题,要是比较复杂的样式时,就真坑爹了,眼花缭乱有木有?JinkoTemplate库可以直接通过JinkoTemplate语法快速生成所需要的html代码,修改的时候也相当轻松,就如同修改当前html文件里的代码一样,不需要去修改js的地方。

 

以下是使用Demo:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <script type="text/javascript" src="jinko.template.js"></script>
 9 
10 <script type="text/html" name="" id="aaa" cols="30" rows="10">
11     {@exp var x = 'end'}
12     {@loop data,row,key,seq}
13         {@seq}:{@key} = {@row} {@x}<br>
14         {@if row.a==1 && row.c==4}
15             yes
16         {@elseif row.c==3}
17             no
18         {@endif}
19     {@endloop}
20     <br><br>
21     {@loop ary,row,key,seq}
22         {@seq}:{@key} = {@row}<br>
23     {@endloop}
24     <br><br>
25     {@if booltrue}
26         true&nbsp;
27     {@endif}
28     {@if boolfalse}
29         false
30     {@endif}
31     <br><br>
32     {@if yi == 1}
33 34     {@elseif yi == 2}
35 36     {@else}
37 38     {@endif}
39 
40 </script>
41 <div id="bbb"></div>
42 <script type="text/javascript">
43     var tpl = document.getElementById('aaa').innerHTML;
44     var jinkoTpl = new JinkoTemplate();
45     jinkoTpl.assign('data', {a:1, asdb:'22110', c:3});
46     jinkoTpl.assign('ary', [1,2,3,4, '你好', 'nihao']);
47     jinkoTpl.assign('booltrue', true);
48     jinkoTpl.assign('boolfalse', false);
49     jinkoTpl.assign('yi', 2);
50     document.getElementById('bbb').innerHTML = jinkoTpl.parse(tpl);
51 </script>
52 </body>
53 </html>

 

 

 demo运行结果:

1:a = 1 end
2:asdb = 22110 end
3:c = 3 end


1:0 = 1
2:1 = 2
3:2 = 3
4:3 = 4
5:4 = 你好
6:5 = nihao


true  

二

 

模板语法:

模板语句由‘{@’和‘}’组成,共有由下五个句子:

{@if} {@else} {@elseif} {@endif} if语句

if语句及分支,用法{@if 表达式}

{@endif}为结束标记

 

{@loop} {@endloop} 循环语句

{@loop}有四个参数{@loop data,row,key,seq},参数之间用英文逗号隔开。其中,data和row参数是必须的。data是数据源(如数组等),row是遍历中的data的子集。key和seq参数是可选的,key是数据源索引(数组下标),seq是当前第几个子集(序号)。

{@endloop}为循环结束标记

 

{@exp} js表达式

可以执行js语句

 

{@变量} 输出变量值

 

模板对象的assign方法:

assign用于给模板对象指定的内部变量赋值,内部变量则用于模板语法中可以直接使用的变量

模板对象的parse方法:

parse方法接收一个参数,该参数为模板字符串,对该字符串进行解析和生成最终的html语句并返回

 

示例:

1 var tpl = document.getElementById('aaa').innerHTML; //获取模板内容
2 var jinkoTpl = new JinkoTemplate(); //创建模板对象
3 jinkoTpl.assign('data', {a:1, asdb:'22110', c:3}); //赋值模板对象内部变量
4 jinkoTpl.assign('ary', [1,2,3,4, '你好', 'nihao']);//赋值模板对象内部变量
5 jinkoTpl.assign('booltrue', true); //赋值模板对象内部变量
6 jinkoTpl.assign('boolfalse', false); //赋值模板对象内部变量
7 jinkoTpl.assign('yi', 2); //赋值模板对象内部变量
8 document.getElementById('bbb').innerHTML = jinkoTpl.parse(tpl); //解析模板并添加到DOM元素中

 

库下载地址(未压缩): https://files.cnblogs.com/files/JinkoWu/jinko.template.js 

库下载地址(压缩): https://files.cnblogs.com/files/JinkoWu/jinko.template.min.js 

posted @ 2016-03-09 17:40  Jinko  阅读(427)  评论(0编辑  收藏  举报