第一次在项目中用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. 2-1、FileBeat入门

    FileBeat入门 要开始使用Filebeat设置,请安装并配置相关产品: 用于存储和索引数据的Elasticsearch. 用户界面的Kibana. 用于解析和增强数据的Logstash(可选). ...

  2. .Net Core小技巧 - Swagger适配虚拟目录及二级目录

    前言 随着前后端分离模式与微服务架构的出现,Web API变得越来越重要及普遍.而后出现的网关技术,使开发者更倾向于使用二级/多级目录来暴露Web API,一是暴露的端口更少,方便管理:二是在网关中可 ...

  3. nginx 常用命令

    -?,-h         : this help  -v            : show version and exit  -V            : show version and c ...

  4. [转]7行Python代码的人脸识别

    https://blog.csdn.net/wireless_com/article/details/64120516 随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿.AI涉及的领域 ...

  5. vs2017更新出错:The entire Box execution exiting with result code: 0x0

    在将vs2017 15.7.4更新至15.9.5出现“The entire Box execution exiting with result code: 0x0”错误,也就是文件解压下载开始安装后, ...

  6. log4j、使用log4j、打印sql日志

    添加pom文件依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifa ...

  7. C++ 使用 curl 进行 http 请求(GET、POST、Download)的封装

    修改自网路 CommonTools.h /* * CommonTools.h * * Created on: 2018年8月2日 * Author: didi */ #include <iost ...

  8. 我的第一个chrome浏览器扩展 5分钟学习搞定

    注意: 文件名必须是 manifest, ,注意扩展名是json, 新建一个文件夹,然后创建一个文本文件,作为这个扩展程序的配置文件,所以文件名是manifest.json, 感谢https://ww ...

  9. java中的反射整理

    1,什么是反射 反射机制是java语言提供的一种基础功能,它能够赋予成语在运行时进行自省的能力.通过反射我们可以直接操作类或者对象,例如:可以通过反射去获取某个对象的类的定义,属性,方法,还可以修改类 ...

  10. TortoiseGit的ssh key和Git的ssh key

    情景模拟: 你使用Git+TortoiseGit对项目进行版本控制,本地库(自己电脑建立的.git)与远程库(如GitLab上建立)通信需要使用ssh验证,你用git生成公钥并保存到了Gitlab上, ...