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;  
                      });
                    }
                 }
             });
         }

  

时间: 2024-08-02 22:52:14

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

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

今天做博客demo的时候遇到了这样的问题:当我用ajax进行资源请求时,需要顺便将账户信息存入session.但是后来发现有@Responsebody标签时,直接用HttpSession存数据时,根本没有效果.代码如下: @ResponseBody @RequestMapping("/checkInfo") public Blogger dealWithLogin(@RequestBody Blogger blogger,HttpSession httpSession){ if(blo

JavaScript模板引擎实现数据交互

经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现,但最后还是要用到ajax+json的. 注意:个人建议 假如项目页面数量是少于50-100个的,那么推荐使用JS模板:如果大于100个的用JS框架.各有各优势嘛. 今晚的博客分几次写完,看到这句话删除就证明已经写完了. 先分享JS模板的内容:我这次推荐使用百度的模板引擎,因为他比腾讯的art运行速

前后端数据交互处理基于原生JS模板引擎开发

json数据错误处理,把json文件数据复制到----> https://www.bejson.com/ 在线解析json 这样能直观的了解到是否是json数据写错,在控制台打断点,那里错误打那里断点,观察是否有错误. <!DOCTYPE html> <html> <head> <title>前后端数据交互处理原生JS模板引擎开发</title> <meta charset ='utf-8'> <script type=&

AJAX+REA实现前后台数据交互的加密解密

AJAX+REA实现前后台数据交互的加密解密 1.创建js文件Encryption.js /**  * 加密解密  */ /** RSA加密用 生成key */ function bodyRSA(){ /** 1024位的key参数写130,2014位的key参数写260 */ setMaxDigits(130); /** ajax 调用后台方法,取回公钥 */ var keyR ;     $.ajax({      url: "/GHGL/Key/pk",//请求后台的url,本例

ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝试,中途也遇到了不少问题.今天就来讨论一下其中之一的问题,WebAPI与前端Ajax 进行跨域数据交互时,由于都在不同的二级域名下(一级域名相同),导致Cookies数据无法获取. 最开始通过头部(Header)将Cookies传输到其WebAPI,也能解决问题. 下面讲述另外一种解决方案. 解决过

使用Jquery.AJAX方法和PHP后台数据交互小结

使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正确. 第二:在传输数据时,传输的数据格式是否正确. 第三:我遇到过 200 但是执行的是AJAX方法的错误方法,我总结了一下,一般都是PHP的数据格式不正确,所以,当遇到200 error时候,应该认真,仔细的检查PHP传输的数据格式是否争取,由于JSON的特性,所以,使用JSON的时候对数据格式规

ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识.具有很好的参考价值.下面跟着小编一起来看下吧 前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝试,中途也遇到了不少问题.今天就来讨论一下其中之一的问题,WebAPI与前端Ajax 进行跨域数据交互时,由于都在不同的二级域名下(一级域名相同),导

关于AJAX+HTML5+ASHX进行全静态页面的数据交互

及时总结项目中使用到的知识,知识在于积累. 1.HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <

jQuery Ajax 前端和后端数据交互的问题

原理:前端与后端的数据交互,最常用的就是GET.POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的数据发送与接收1)提交表单数据2)提交JSON数据 后端的数据接收与响应1)接收GET请求数据2)接收POST请求数据3)响应请求 1.提交表单数据 1)GET请求 1 var data = { 2 "name": "test", 3 "age": 1 4 }; 5 $.ajax({ 6 type: 'GET', 7 url: