基于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 相关文章推荐
用JS剩余字数计算的代码
Jul 03 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
Jan 27 Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
AngularJS实现分页显示数据库信息
Jul 01 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
js中url对象化管理分析
Dec 29 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
详解Vue Cli浏览器兼容性实践
Jun 08 Javascript
OpenLayers加载缩放控件使用方法详解
Sep 25 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 数组遍历顺序理解
2009/09/09 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php编程每天必学之表单验证
2016/03/01 PHP
js内置对象 学习笔记
2011/08/01 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
jQuery层级选择器实例代码
2017/02/06 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
python中json格式数据输出的简单实现方法
2016/10/31 Python
Python中异常重试的解决方案详解
2017/05/05 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
django迁移文件migrations的实现
2020/03/31 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
前台文员岗位职责
2013/12/28 职场文书
求职意向书范文
2014/04/01 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
三好学生个人总结
2015/02/15 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
公司年会主持词范文!
2019/05/07 职场文书
php 原生分页
2021/04/01 PHP
详解pytorch创建tensor函数
2022/03/22 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL
深入理解 Golang 的字符串
2022/05/04 Golang