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,如需转载请自行联系原作者
相关文章
|
11月前
|
Python
循环的嵌套
在编程中,循环结构是一种非常重要的控制结构,用于重复执行一段代码。而循环的嵌套则是指在一个循环内部又包含了另一个或多个循环,使得代码的执行更加复杂和灵活。本文将介绍循环嵌套的概念、使用场景以及示例代码。
174 1
|
1月前
|
JSON 前端开发 API
多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
理论上array.flat()能做的事情,array.flatMap()都可以做,但是array.flat()更简单,占用内存更少,执行更快。 这个相对冷门一些,w3school上都没有相关教程,看到就是赚到,收藏就是财富! 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助
|
7月前
|
JavaScript 前端开发
数组嵌套数组去重
在JavaScript中对嵌套数组进行去重的方法,提供了一个具体的函数实现。
34 1
数组嵌套数组去重
|
6月前
数组去重for循环和for循环嵌套
数组去重for循环和for循环嵌套
52 0
|
9月前
|
语音技术 Python
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
|
10月前
for循环嵌套for循环与递归的区别
for循环嵌套for循环与递归的区别
|
11月前
|
JavaScript 前端开发
Symbol有哪些常用的内置方法
Symbol有哪些常用的内置方法
C#中For循环和Foreach循环的区别
C#中For循环和Foreach循环的区别
208 0
|
Serverless
递归访问目录,嵌套函数,递归函数map函数,filter函数,reduce函数
一、递归访问目录: 且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹
110 0
sort() 方法是最强大的数组方法之一。
sort() 方法是最强大的数组方法之一。
92 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等