基于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 相关文章推荐
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
Sep 03 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
jQuery实现菜单栏导航效果
Aug 15 jQuery
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 Javascript
vue渲染方式render和template的区别
Jun 05 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者的疑难问答(1)
2006/10/09 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
angular十大常见问题
2017/03/07 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python针对excel的操作技巧
2018/03/13 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python遍历字典方式就实例详解
2019/12/28 Python
多个python文件调用logging模块报错误
2020/02/12 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
python反扒机制的5种解决方法
2021/02/06 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
机器人总动员观后感
2015/06/09 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python