art-template

1.template-web是什么东西,有什么作用?

官方参考网址:http://aui.github.io/art-template/zh-cn/docs/

答:这是一个模板引擎,简单来说就是构建一个模板,让其生成html的js代码。如果不用该js,手动来操作,我们可能需要繁杂的拼接html标签,还要做for循环等等,在没有使用前端框架之前,渲染数据相当之麻烦。

2.template-web要如何使用?

总的来说,template-web.js的使用分为3个步骤,

1.引入模板并制作模板 2.将数据插入模板中 3.将模板插入html代码中

  1. 引入模版文件 template-web.js

  2. 模板插入html代码中

    <script>
      // 获取数据
      const data = {
          name:"Petrel",
          age:"25",
          phone:"1377777777",
          avator:"<img src='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic2.zhimg.com%2F50%2Fv2-7fe2ecb0e02ce14f92e8d6e10c6a3417_hd.jpg&refer=http%3A%2F%2Fpic2.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634109811&t=df5463cb1adb851d779b071d72008923'>"
      };
    
      // 将数据放入模板,并显示到页面中
      const res = template("template", data);// 此处template代表模板id,data表示要插入的数据
     
      document.write(res) // 显示结构
    </script>
    

    效果预览:

    image-202109131527567553.根据数据的不同,做if判断

    <!DOCTYPE html>
    <html lang="en">
    <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <!--引入模板引擎:一般用于在网络请求之后,展示相同的多条数据 -->
    <script type="text/javascript" src="lib/template-web.js" ></script>
    </head>
    <body>
      <div id="ifBox"></div>
    <!--
       1.逻辑语句---条件语句的使用
    -->
    <script type="text/html" id="personTemplate">
    <ul>
         {{if sex=="女"}}
      <li>姓名:{{name}} 女士
         <ol>
             <li>最新款的包包</li>
             <li>你真{{skill}}</li>
         </ol>
      </li>
        {{else if sex=="男"}}
      <li>姓名:{{name}} 先生
          <ol>
              <li>最新款的西装</li>
              <li>你真{{skill}}</li>
          </ol>
      </li>
      {{/if}}
    </ul>
    </script>
    <script type="text/javascript">
    
      //定义数据
      const person1 = {
          name:"赵丽颖",
          sex:"女",
          skill:"可爱"
      };
    
      const person2 = {
          name:"胡歌",
          sex:"男",
          skill:"帅气"
      };
    
      /**
       * 利用模板引擎 引用数据填充到模板中
       *
       * 参数一:模板id
       * 参数二:数据
       */
      var result =  template("personTemplate",person1);
      var result2 =  template("personTemplate",person2);
    
      //将返回的模板结果添加到界面中
      var ifBox = document.getElementById("ifBox");
      ifBox.innerHTML = result + result2;
    </script>
    </html>
    

    image-20210913153020976

    4.数据渲染

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .current {
          margin-left:10px;
          list-style: none;
          border:1px solid black;
        }
      </style>
      <script src="./lib/jquery-1.12.4.js"></script>
      <script src="./lib/template-web.js"></script>
    </head>
    <body>
      <script type="text/html" id="templateId">
        <ul>
         <!-- 遍历brand数组,brand是请求返回数据中的数组 -->
        {{each brand}}
             <li>
                <a href="">{{$value.title}}</a>
                <ul >
                  {{each $value.text}}
                       <li class="current"> {{$value}}</li>
                  {{/each}}
                </ul>
            </li>
        {{/each}}
      </ul>
      </script>
      <script>
          $(function () { 
             $.ajax({
               url:'http://git.coding-future.com:3010/list/shopsort',
               dataType:'json',
               success (res) {
                 const { data } = res
                // const { data: {brand}} = res
                 console.log(data);
                 const htmlStr = template('templateId',data)
                 $("body").html(htmlStr)
               }
             })
          })
      </script>
    </body>
    </html>
    /**
     * 
     * @author Petrel&Hongyan_Li
     * @QQ:158452782
     * @TEL&&WX:137176-----
     * @created 2021/09/13 14:58:31
     */
    
    

    image-20210913153127424

    参考数据:

    {
      "status": 200,
      "message": "获取成功",
      "data": {
        "brand": [
          {
            "title": "所有品牌",
            "text": [
              "全部",
              "爱肯拿ACANA",
              "爱旺斯ADVANCE",
              "AVODerm",
              "爱诺Eminent",
              "巴西淘淘TOTAL",
              "Farmina",
              "海洋之星FISH4DOGS",
              "纽顿nutram number",
              "耐吉斯SOLUTION",
              "now FRESH",
              "欧帝亿IMPERIAL PAW",
              "primo",
              "生鲜本能Instinct",
              "天衡宝Natural Balance",
              "Tikipets"
            ]
          },
          {
            "title": "A",
            "text": [
              "爱肯拿ACANA",
              "爱旺斯ADVANCE",
              "AVODerm",
              "爱诺Eminent"
            ]
          },
          {
            "title": "B",
            "text": [
              "巴西淘淘TOTAL"
            ]
          },
          {
            "title": "F",
            "text": [
              "Farmina"
            ]
          },
          {
            "title": "H",
            "text": [
              "海洋之星FISH4DOGS"
            ]
          },
          {
            "title": "N",
            "text": [
              "纽顿nutram number",
              "耐吉斯SOLUTION",
              "now FRESH"
            ]
          },
          {
            "title": "O",
            "text": [
              "欧帝亿IMPERIAL PAW"
            ]
          },
          {
            "title": "P",
            "text": [
              "primo"
            ]
          },
          {
            "title": "S",
            "text": [
              "生鲜本能Instinct"
            ]
          },
          {
            "title": "T",
            "text": [
              "天衡宝Natural Balance",
              "Tikipets"
            ]
          }
        ],
        "alt": [
          {
            "name": "主要配方:",
            "title": [
              "鸡肉",
              "鱼肉",
              "禽肉",
              "羊肉",
              "鸭肉",
              "牛肉",
              "鹿肉",
              "其他"
            ]
          },
          {
            "name": "适合体型:",
            "title": [
              "全体型",
              "小型犬",
              "中型犬",
              "大型犬"
            ]
          },
          {
            "name": "适合年龄:",
            "title": [
              "全年龄犬",
              "成犬",
              "幼犬",
              "老犬",
              "怀孕哺乳期犬"
            ]
          },
          {
            "name": "颗粒大小:",
            "title": [
              "标准粒",
              "小颗粒",
              "大颗粒"
            ]
          },
          {
            "name": "重量区间:",
            "title": [
              "小包",
              "大包",
              "中包",
              "超小包",
              "超大包"
            ]
          },
          {
            "name": "单价:",
            "title": [
              "50元以上/斤",
              "40.1-50元/斤",
              "30.1-40元/斤",
              "25.1-30元/斤",
              "20.1-25元/斤",
              "15.1-20元/斤",
              "10.1-15元/斤"
            ]
          }
        ]
      }
    }
    

https://gitee.com/xlying1314/art-template

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值