doT.js变量和数组混合读取方式

本文介绍了一种在HTML中使用JS进行数据渲染的方法。通过定义数据结构,并利用特定的模板语法来展示数据,实现动态内容填充。支持单个变量及数组的显示,最后通过JS代码将模板和数据结合。
  1. 可以包裹任意大小的html
  2. 变量在其包裹的任意区域都有效
  3. 单个变量可以和数组分开展示
  4. 最好放置在最下方执行js
数据结构
var data = {
        "id": "1280",
        "name": "漂亮的衣服",
        "price": "100",
        "oprice": "150",
        "goods_img": [
            "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000189/20160718/a/578c97464f436.jpg@1000w",
            "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000189/20160718/d/578c973b1fa40.jpg@1000w",
            "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000189/20160718/6/578c973352e0f.jpg@1000w"
        ]
    };

区域div

<div id="info_area"></div>

包裹区域

<script id="goodstmpl" type="text/x-dot-template">
...
</script>

单个变量使用

<div class="aui-title">{{= it.name}}</div>

变量中数组使用

方式1

{{ for(var prop in it['goods_img']) { }}
<div class="swiper-slide li">
<a href="javascript:;">
    <img src="{{= it['goods_img'][prop] }}"
         data-img="{{= it['goods_img'][prop] }}">
</a>
</div>
{{ } }}

方式2

{{~ it.goods_img:v}}
<div class="swiper-slide li">
    <a href="javascript:;">
        <img src="{{= v }}"
             data-img="{{= v }}">
    </a>
</div>
{{~}}

方式3

{{ for(var prop in it['goods_img']) { }}
{{ var v = it['goods_img'][prop]; }}
<div class="swiper-slide li">
    <a href="javascript:;">
        <img src="{{= v }}"
             data-img="{{= v }}">
    </a>
</div>
{{ } }}

JS处理

var interText = doT.template($("#goodstmpl").text());
$("#info_area").html(interText(data));

422101-20161011163724836-119339529.png

小结

很好用~



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5949852.html,如需转载请自行联系原作者

SAMPLE语言定义 一、字符集定义 1.<字符集> → <字母>│<数字>│<单界符> 2.<字母> → A│B│…│Z│a│b│…│z 3.<数字> → 0│1│2│…│9 4.<单界符> → +│-│*│/│=│<│>│(│)│[│]│:│. │; │, │' 二、单词集定义 5.<单词集> → <保留字>│<双界符>│<标识符>│<常数>│<单界符> 6.<保留字> → and│array│begin│bool│call│case│char│constant│dim│do│else│end│false│for│if│input│integer│not│of│or│output│procedure│program│read│real│repeat│set│stop│then│to│true│until│var│while│write 7.<双界符> → <>│<=│>=│:= │/*│*/│.. 8.<标识符> → <字母>│<标识符> <数字>│<标识符> <字母> 9.<常数> → <整数>│<布尔常数>│<字符常数> 10.<整数> → <数字>│<整数> <数字> 11.<布尔常数> → true│false 12.<字符常数> → ' 除 {'} 外的任意字符串 ' 三、数据类型定义 13.<类型> → integer│bool│char 四、表达式定义 14.<表达式> → <算术表达式>│<布尔表达式>│<字符表达式> 15.<算术表达式> → <算术表达式> + <项>│<算术表达式> - <项>│<项> 16.<项> → <项> * <因子>│<项> / <因子>│<因子> 17.<因子> → <算术量>│- <因子> 18.<算术量> → <整数>│<标识符>│( <算术表达式> ) 19.<布尔表达式> → <布尔表达式> or <布尔项>│<布尔项> 20.<布尔项> → <布尔项> and <布因子>│<布因子> 21.<布因子> → <布尔量>│not <布因子> 22.<布尔量> → <布尔常量>│<标识符>│( <布尔表达式> )│ <标识符> <关系符> <标识符>│<算术表达式> <关系符> <算术表达式> 23.<关系符> → <│<>│<=│>=│>│= 24.<字符表达式> → <字符常数>│<标识符> 五、语句定义 25.<语句> → <赋值句>│<if句>│<while句>│<repeat句>│<复合句> 26.<赋值句> → <标识符> := <算术表达式> 27.<if句>→ if <布尔表达式> then <语句>│if <布尔表达式> then <语句> else <语句> 28.<while句> → while <布尔表达式> do <语句> 29.<repeat句> → repeat <语句> until <布尔表达式> 30.<复合句> → begin <语句表> end 31.<语句表> → <语句> ;<语句表>│<语句> 六、程序定义 32.<程序> → program <标识符> ;<变量说明> <复合语句> . 33.<变量说明> → var <变量定义>│ε 34.<变量定义> → <标识符表> :<类型> ;<变量定义>│<标识符表> :<类型> ; 35.<标识符表> → <标识符> ,<标识符表>│<标识符> 七、SIMPLE语言单词编码 单 词 种别码 单 词 种别码 单 词 种别码 and 1 output 21 * 41 array 2 procedure 22 */ 42 begin 3 program 23 + 43 bool 4 read 24 , 44 call 5 real 25 - 45 case 6 repeat 26 . 46 char 7 set 27 .. 47 constant 8 stop 28 / 48 dim 9 then 29 /* 49 do 10 to 30 : 50 else 11 true 31 := 51 end 12 until 32 ; 52 false 13 var 33 < 53 for 14 while 34 <= 54 if 15 write 35 <> 55 input 16 标识符 36 = 56 integer 17 整数 37 > 57 not 18 字符常数 38 >= 58 of 19 ( 39 [ 59 or 20 ) 40 ] 60
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值