基于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 相关文章推荐
单独使用CKFinder选择图片的方法
Aug 21 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
JavaScript实现文字跟随鼠标特效
Aug 06 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
借助node实战JSONP跨域实例
Mar 30 Javascript
node中间层实现文件上传功能
Jun 11 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
vant时间控件使用方法详解
Dec 24 Javascript
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中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php字符串函数学习之substr()
2015/03/27 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
JS Timing
2007/04/21 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
Python中删除文件的程序代码
2011/03/13 Python
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
python开发之函数定义实例分析
2015/11/12 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
python交互式图形编程实例(一)
2017/11/17 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Django中的Model操作表的实现
2018/07/24 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
error和exception有什么区别
2012/10/02 面试题
应届护士求职信范文
2014/01/26 职场文书
先进工作者获奖感言
2014/02/08 职场文书
移交协议书
2014/08/19 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
离婚协议书范本
2015/01/26 职场文书
大明湖导游词
2015/02/03 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python