doT中嵌套for循环的使用

简介:

1.数据结构

var goods = [
        {
            "id": "1",
            "name": "衣服",
            "goods": [
                {
                    "goods_id": "1",
                    "name": "衣服1",
                    "price": "100",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                },
                {
                    "goods_id": "2",
                    "name": "衣服2",
                    "price": "200",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                }
            ]
        },
        {
            "id": "2",
            "name": "鞋子",
            "goods": [
                {
                    "goods_id": "3",
                    "name": "鞋子1",
                    "price": "100",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                },
                {
                    "goods_id": "4",
                    "name": "鞋子2",
                    "price": "200",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                }
            ]
        }
    ];

2.区域与页面构建

    <div id="category-goods"></div>
    <!-- 必须加上type="text/x-dot-template" -->
    <script id="category-goods-tmpl" type="text/x-dot-template">
        {{ for(var i=0, catlen=it.length; i<catlen; i++) { }}
            <div class="rxsp">
                <div class="aui-pull-left"><h3> {{= it[i].name }} </h3></div>
                <a class="aui-pull-right ">
                    查看更多
                    <span class="aui-iconfont aui-icon-right"></span>
                </a>
            </div>

            <div class="aui-list-item-inner">
                <div class="aui-row aui-row-padded">
                    {{ for(var j=0, goodslen=it[i]['goods'].length; j<goodslen; j++) { }}    
                    <div class="aui-col-xs-6">
                        <img src="{{= it[i]['goods'][j].logoimg }}" onclick="openWin('goods_detail')">
                        <p class="tit">{{= it[i]['goods'][j].name }} </p>
                        <div class="aui-info" style="padding-top:0">
                            <div class="aui-info-item">
                                <span class="red">{{= it[i]['goods'][j].price }}<!-- <span class="jifen"> 积分1000</span></span> -->
                            </div>
                        </div>
                    </div>
                    {{ } }}
                </div>
            </div>
        {{ } }}
    </script>

3.调用数据

    var goods = [
        {
            "id": "1",
            "name": "衣服",
            "goods": [
                {
                    "goods_id": "1",
                    "name": "衣服1",
                    "price": "100",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                },
                {
                    "goods_id": "2",
                    "name": "衣服2",
                    "price": "200",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                }
            ]
        },
        {
            "id": "2",
            "name": "鞋子",
            "goods": [
                {
                    "goods_id": "3",
                    "name": "鞋子1",
                    "price": "100",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                },
                {
                    "goods_id": "4",
                    "name": "鞋子2",
                    "price": "200",
                    "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                }
            ]
        }
    ];

    var evalText = doT.template($("#category-goods-tmpl").text());
    $("#category-goods").html(evalText(goods));

4.结果展示

调整结构

var goods_list = {
        "list": [
            {
                "id": "1",
                "name": "衣服",
                "goods": [
                    {
                        "goods_id": "1",
                        "name": "衣服1",
                        "price": "100",
                        "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                    },
                    {
                        "goods_id": "2",
                        "name": "衣服2",
                        "price": "200",
                        "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                    }
                ]
            },
            {
                "id": "2",
                "name": "鞋子",
                "goods": [
                    {
                        "goods_id": "3",
                        "name": "鞋子1",
                        "price": "100",
                        "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                    },
                    {
                        "goods_id": "4",
                        "name": "鞋子2",
                        "price": "200",
                        "logoimg": "http://image.diandodo.com/zhudianbao/Uploads/User/u1250000222/20160723/201607231342158687.png@250h_250w_1e_1c"
                    }
                ]
            }
        ]
    };

这种结构适用于arttemplate,便于统一结构。
doT中相应调整,

    var evalText = doT.template($("#category-goods-tmpl").text());
    $("#category-goods").html(evalText(goods_list.list));



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5946161.html,如需转载请自行联系原作者
相关文章
|
JavaScript
Vue中遇到的Bug( Component name “School“ should always be multi-word vue/multi-word-component-names)
Vue中遇到的Bug( Component name “School“ should always be multi-word vue/multi-word-component-names)
160 0
|
Shell 开发工具 数据安全/隐私保护
2021 最新 IntelliJ IDEA 详细配置 Git GitHub Gitee 步骤演示(图文版)(二)
2021 最新 IntelliJ IDEA 详细配置 Git GitHub Gitee 步骤演示(图文版) 一、 Git 0. Git下载,安装 0.1.下载 0.2.安装 1.IDEA集成 Git 1.1 打开IDEA 找到这个页面 点击这里导入本地Git 1.2 找到本地Git 的cmd目录下面的git.exe,然后点击OK 1.3 点击test 之后 ,提示如下界面,表示配置成功 二、GitHub 1.官网注册账号 1.1输入 用户名 邮箱 建议使用@163.com 或者@126.com 不要使用qq邮箱,建议密码和邮箱密码一致 1.2 验证 2. 稍微等一会加载然后,完成基础设置
533 0
2021 最新 IntelliJ IDEA 详细配置 Git GitHub Gitee 步骤演示(图文版)(二)
|
数据可视化 搜索推荐 数据挖掘
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
776 0
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
|
Linux Windows
Windows和WSL安装的Linux系统互相访问
Windows和WSL安装的Linux系统互相访问
147 0
|
网络协议 关系型数据库 MySQL
|
9月前
AttributeError: module 'torchaudio' has no attribute 'io'问题解决
【5月更文挑战第3天】AttributeError: module 'torchaudio' has no attribute 'io'问题解决
322 4
|
存储 Go C++
Go 中slice, map, chan, strcuct 是值传递么?
Go 中slice, map, chan, strcuct 是值传递么?
356 0
|
人工智能 监控 Java
IDEA启动tomcat 端口1099被占用(1099 is already in use)
IDEA启动tomcat 端口1099被占用(1099 is already in use)
IDEA启动tomcat 端口1099被占用(1099 is already in use)
|
XML 网络协议 关系型数据库
基于Metasploit的软件渗透测试(二)
基于Metasploit的软件渗透测试(二)
1186 0

热门文章

最新文章