基于HTML模板和JSON数据的JavaScript交互(移动端)


Posted in Javascript onApril 06, 2016

写本文之前,我正在做一个基于Tab页的订单中心:

每点击一个TAB标签,会请求对应状态的订单列表。之前的项目,我会在js里使用 + 连接符连接多个html内容:

var html = '';
html += '<div class="empty-list">' + 
'<div class="icon icon-box"></div>'+
'<div>还没有订单</div>'+
'</div>';

Html内容少点还好,但是当内容多起来的时候,再使用这种方式,以后维护起来不方便,也影响美观,可阅读性差。

突然想起来PHP模板的相关知识,那么应该也有类似JavaScript模板一说。由于为了快速使用在项目上,就去网上找了找。还真有:

基于HTML模板和JSON数据的JavaScript交互

http://www.zhangxinxu.com/wordpress/2012/09/javascript-html-json-template/

看了下文章,使用起来还是蛮简单的:

1、准备好html模板

<textarea class="js-order-tmp" style="display:none;">
<!--goods-block-->
<div class="block m-s-order">
<div class="block-item block-news">
<a href="<?php echo site_url('order/detail/'. '$id$')?>" class="dis-block external">
<div class="item-img">
<img src="$thumb$"/>
</div>
<div class="item-intro">
<div class="sub-l">
<p class="t-order-num">订单号:$order_num$</p>
<p class="t-name">收件人:$cus_name$</p>
<p class="t-date">$create_time$</p>
</div>
<div class="sub-r">
<p class="t-expand"><span class="icon icon-right"></span></p>
<p class="t-flag">$flag_name$</p>
</div>
</div>
<div class="clear"></div>
</a>
</div>
</div>
<!--/goods-block-->
</textarea>
<textarea class="js-no-order-tmp" style="display:none;">
<!-- no order -->
<div class="empty-list">
<div class="icon icon-box"></div>
<div>还没有订单</div>
</div>
<!-- /no order -->
</textarea>

其中变量部分全部用 variate variate 表示。

2、模板方法很简单,直接写一个基于字符串原型的扩展方法,确保全局可用:

String.prototype.temp = function(obj) {
return this.replace(/\$\w+\$/gi, function(matchs) {
var returns = obj[matchs.replace(/\$/g, "")]; 
return (returns + "") == "undefined"? "": returns;
});
};

主要使用到了正则知识。

3、准备json数据:

{
"ecd": 0,
"msg": "成功",
"result": [{
"id": "32",
"order_num": "test-001",
"title": "test",
"thumb": "http:\/\/40DA1265-40F6-D622-8BA5-04BA0AF72573.jpg",
"item_id": "21",
"price": "0.11",
"cus_name": "test",
"cus_tel": "10086",
"cus_address": "北京 北京海淀区",
"flag": "5",
"create_time": "20160329115544",
"update_time": "20160330120001",
"flag_name": "订单已取消"
}],
"locate": ""
}

4、使用ajax显示数据

$.progress_show('正在努力加载中');
$.ajax({
url: site_url + 'api/order/getAll/' + status,
type: 'get',
dataType: 'json',
error: doAjax.error,
success: function (response) {
$.progress_hide();
if (response.ecd == '0') {
var htmlList = '', htmlTemp = $("textarea.js-order-tmp").val();
if(typeof response.result === 'undefined'){
htmlList = $("textarea.js-no-order-tmp").val();
}else{
$.each(response.result, function(i,el) {
htmlList += htmlTemp.temp(el);
});
}
$('.js-status-' + status).empty().append(htmlList);
return true;
} else {
return $.alert(response.msg);
}
},
});

这里的部分方法没有给出,大家知道流程、原理即可。通过点击TAB标签,就可以显示数据了:

以上内容是小编给大家介绍的基于HTML模板和JSON数据的JavaScript交互(移动端),希望对大家有所帮助!

Javascript 相关文章推荐
关于递归运算的顺序测试代码
Nov 30 Javascript
基于jquery的bankInput银行卡账号格式化
Aug 22 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
自己编写的类似JS的trim方法
Oct 09 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
JavaScript数据结构与算法之链表
Jan 29 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
解析原来浏览器原生支持JS Base64编码解码
Aug 12 Javascript
AJAX XMLHttpRequest对象创建使用详解
Aug 20 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 #Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 #Javascript
jQuery隐藏和显示效果实现
Apr 06 #Javascript
JS动态改变浏览器标题的方法
Apr 06 #Javascript
jQuery ajax提交Form表单实例(附demo源码)
Apr 06 #Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 #Javascript
JS控制伪元素的方法汇总
Apr 06 #Javascript
You might like
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
实例浅析js的this
2016/12/11 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
Python实现的栈(Stack)
2018/01/26 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python 如何在测试中使用 Mock
2021/03/01 Python
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
父亲节寄语大全
2015/02/27 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL