第一次在项目中用laytpl模板,下面是一些使用过程中的探索,希望对小伙伴们有所帮助。

  注:第一次使用这个模板的小伙伴建议先去看看官网 laytpl

<script type="text/html" id="productList-shop-main1">  //模板内容都要存放在<script>标签里
{{# for (var i = 0; i < d.obj.length; i++){ }}  //模板里面的for循环跟js一样的写法,要写在{{# }}这里面
<div class="list-shop product-list-shop" data-id="{{d.obj[i].id}}">  //模板内容里面的数据要写在2对大括号里面{{ d.数据 }}
<div class="list-msg-2 productlist-img">       //模板里面的数据前面都要加上d,没有为什么,语法就这样
<a title="{{d.obj[i].fullName}}"><img src="{{d.obj[i].imgrealpath_45}}" class="shop-img" data-id="{{d.obj[i].id}}"/></a>
</div>
<div class="list-msg-3 productlist-msg-3">
<div class="list-main-1">
<div class="productlist-list-main-1-left list-main-1-left product-main-1-left">{{d.obj[i].fullName}}</div>
</div>
<div class="list-main-3">
<div class="list-main-3-left"><span>¥{{d.obj[i].price}}</span></div>
<div class="list-main-3-right">
<ul class="product-btn productlist-btn"> {{# if(d.obj[i].isFavorite == 1){ }}  //if else也是js的写法,也要写在{{# }}里面
<li><img class="favorite-icon" src="webpage/weixin/wudeli-weixin/images/list01.png" data-value="{{d.obj[i].isFavorite}}" /></li>
{{# }else{ }}  //else也要写在{{# }}
<li><img class="favorite-icon" src="webpage/weixin/wudeli-weixin/images/list1.png" data-value="{{d.obj[i].isFavorite}}" /></li>
{{# } }}  //结束括号也要写在{{# }}
<li><img class="index-car-icon" src="webpage/weixin/wudeli-weixin/images/car-chcked01.png" /></li>
<li class="product-btn-buy productlist-btn-buy" "><button onclick="productBtn(this);">立即购买</button></li>
</ul>
</div>
</div>
</div>
</div>
{{# } }}  //for循环结束括号也要单独写在这里面{{# }}
</script>

 上面模板的内容就是下图红色框的部分,使用了这个模板以后,就不用再拼字符串了。

  

  下面总结了2种写法:

  第一种是模板里面已经写了循环(比如我上面的模板就已经写了循环),ajax请求里面就不需要在写循环了,如下图:

  

    var gettpl = document.getElementById('productList-shop-main1').innerHTML; 
    $.ajax({
url: "orderController.do?findTdCodeNews",
data: {
"billCompanyName":billCompanyName
 },
type: "post",
dataType:"json",
success: function (e) {
if (!e.success) {
alert(e.msg);
return false;
} laytpl(gettpl).render(e, function(html){  //这里的gettp1就是获取到模板内容的id
document.getElementById('item3-main').innerHTML = html;  //把获取到的模板内容添加到id为item3-main的容器里面
}); }
});
}

   

  第二种是,模板里面没有写循环,那么就要在ajax请求里面写循环,如下图:

  

    var gettpl = document.getElementById('productList-shop-main1').innerHTML;  
    $.ajax({
url: "orderController.do?findTdCodeNews",
data: {
"billCompanyName":billCompanyName
 },
type: "post",
dataType:"json",
success: function (e) {
if (!e.success) {
alert(e.msg);
return false;
}

             //xxx代表返回结果集的属性名称
           for(var i = 0; i < e.xxx.length; i++){
laytpl(gettpl).render(xxx[i], function(html){ 
document.getElementById('item3-main').innerHTML = html;  
});
}
}
});
}

  

laytpl模板——怎么使用ajax与数据交互的更多相关文章

  1. $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互

    一.ajax  1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json  2 ajax干啥用的?前后端做数据交互:  3 之前学的跟后台做交互的方式:   -第一种:在浏览器 ...

  2. AJAX进行数据交互的过程

    AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML). 是指一种创建交互式网页应用的网页开发技术. 通过在后台与服务 ...

  3. springmvc使用ajax进行数据交互时,session失效问题(@ResponseBody与session能否同时使用?)

    今天做博客demo的时候遇到了这样的问题:当我用ajax进行资源请求时,需要顺便将账户信息存入session.但是后来发现有@Responsebody标签时,直接用HttpSession存数据时,根本 ...

  4. Vue--- Vue(Pubsub + Ajax) 数据交互

    案例知识点 兄弟组件儿的通信     使用了Pubsub    订阅与发布 ajax数据请求    获取前   获取中   获取后   获取为空    获取异常 获取成功后显示数据给到  原先定义号的 ...

  5. Struts2+Ajax实现数据交互

    1.导入jar包 struts核心包: json需要的包: 2.配置web.xml <filter> <filter-name>struts2</filter-name& ...

  6. EChats+Ajax之柱状图的数据交互

    原文链接:https://blog.csdn.net/qq_37936542/article/details/79723710 一:下载 echarts.min.js 选择完整版进行下载,精简版和常用 ...

  7. Ajax概述,封装以及联合模板引擎进行数据交互

    欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 更多资料可参考Ajax 介绍 ...

  8. 无废话ExtJs 入门教程二十[数据交互:AJAX]

    无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...

  9. JavaScript模板引擎实现数据交互

    经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现 ...

随机推荐

  1. 【算法】Attention is all you need

    Transformer 最近看了Attention Is All You Need这篇经典论文.论文里有很多地方描述都很模糊,后来是看了参考文献里其他人的源码分析文章才算是打通整个流程.记录一下. T ...

  2. vertx.FileResolver文件解析

    FileResolver Class //文件复制解析,复制文件到cache directory 中 ,VM options : -Dvertx.disableFileCPResolving publ ...

  3. 一个二维码-->网址-->iOS/Android跳转

    view-source:https://dpx.shopo.com.cn/down.html lmxmn117:~ will.wei$ curl https://dpx.shopo.com.cn/do ...

  4. javamail 发送、读取邮件

    概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...

  5. linux在线安装mysql

     1)下载rpm安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm;2) 安装mysql源 yum ...

  6. JS-两个空数组为什么不相等?

    var a = [], b = []; console.log(a==b); 控制台的打印结果是什么?答案是:false. 接下来看解析: 原始值的比较是值的比较: 它们的值相等时它们就相等(==) ...

  7. Kubernetes系列之Helm介绍篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...

  8. Win Server 2003 10条小技巧

    微软推出Windows Server 2003已经有一段时间了,但是,由于它是一个面向企业用户的服务器操作系统,所以,没有引起更多个人用户的注意.实际上,简单地改变一下系统的设置,您也可以将Windo ...

  9. MonggoDB(二)

    分组聚合 如果你有数据存储在MongoDB中,你想做的可能就不仅仅是将数据提取出来这么简单,可能需要对数据进行分析并加以利用. 聚合框架:可以使用多个构件创建一个管道,上一个构件的结果传给下一个构件. ...

  10. 【2019雅礼集训】【可持久化线段树】【模型转化】D1T2Permutation

    目录 题意 输入格式 输出格式 思路 代码 题意 给定一个长度为n的序列A[],你需要确定一个长度为n的排列P[],定义当前排列的值为: \[\sum_{i=1}^{n}{A[i]P[i]}\] 现在 ...