laytpl模板——怎么使用ajax与数据交互
第一次在项目中用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与数据交互的更多相关文章
- $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
一.ajax 1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json 2 ajax干啥用的?前后端做数据交互: 3 之前学的跟后台做交互的方式: -第一种:在浏览器 ...
- AJAX进行数据交互的过程
AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML). 是指一种创建交互式网页应用的网页开发技术. 通过在后台与服务 ...
- springmvc使用ajax进行数据交互时,session失效问题(@ResponseBody与session能否同时使用?)
今天做博客demo的时候遇到了这样的问题:当我用ajax进行资源请求时,需要顺便将账户信息存入session.但是后来发现有@Responsebody标签时,直接用HttpSession存数据时,根本 ...
- Vue--- Vue(Pubsub + Ajax) 数据交互
案例知识点 兄弟组件儿的通信 使用了Pubsub 订阅与发布 ajax数据请求 获取前 获取中 获取后 获取为空 获取异常 获取成功后显示数据给到 原先定义号的 ...
- Struts2+Ajax实现数据交互
1.导入jar包 struts核心包: json需要的包: 2.配置web.xml <filter> <filter-name>struts2</filter-name& ...
- EChats+Ajax之柱状图的数据交互
原文链接:https://blog.csdn.net/qq_37936542/article/details/79723710 一:下载 echarts.min.js 选择完整版进行下载,精简版和常用 ...
- Ajax概述,封装以及联合模板引擎进行数据交互
欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 更多资料可参考Ajax 介绍 ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
- JavaScript模板引擎实现数据交互
经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现 ...
随机推荐
- 2-1、FileBeat入门
FileBeat入门 要开始使用Filebeat设置,请安装并配置相关产品: 用于存储和索引数据的Elasticsearch. 用户界面的Kibana. 用于解析和增强数据的Logstash(可选). ...
- .Net Core小技巧 - Swagger适配虚拟目录及二级目录
前言 随着前后端分离模式与微服务架构的出现,Web API变得越来越重要及普遍.而后出现的网关技术,使开发者更倾向于使用二级/多级目录来暴露Web API,一是暴露的端口更少,方便管理:二是在网关中可 ...
- nginx 常用命令
-?,-h : this help -v : show version and exit -V : show version and c ...
- [转]7行Python代码的人脸识别
https://blog.csdn.net/wireless_com/article/details/64120516 随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿.AI涉及的领域 ...
- 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”错误,也就是文件解压下载开始安装后, ...
- log4j、使用log4j、打印sql日志
添加pom文件依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifa ...
- C++ 使用 curl 进行 http 请求(GET、POST、Download)的封装
修改自网路 CommonTools.h /* * CommonTools.h * * Created on: 2018年8月2日 * Author: didi */ #include <iost ...
- 我的第一个chrome浏览器扩展 5分钟学习搞定
注意: 文件名必须是 manifest, ,注意扩展名是json, 新建一个文件夹,然后创建一个文本文件,作为这个扩展程序的配置文件,所以文件名是manifest.json, 感谢https://ww ...
- java中的反射整理
1,什么是反射 反射机制是java语言提供的一种基础功能,它能够赋予成语在运行时进行自省的能力.通过反射我们可以直接操作类或者对象,例如:可以通过反射去获取某个对象的类的定义,属性,方法,还可以修改类 ...
- TortoiseGit的ssh key和Git的ssh key
情景模拟: 你使用Git+TortoiseGit对项目进行版本控制,本地库(自己电脑建立的.git)与远程库(如GitLab上建立)通信需要使用ssh验证,你用git生成公钥并保存到了Gitlab上, ...