基于HTML模板和JSON数据的JavaScript交互
为了将后台的数据处理放到前台,我们可能出现以下的代码
html
String.prototype.temp = function(obj) { return this.replace(/\$\w+\$/gi, function(matchs) { var returns = obj[matchs.replace(/\$/g, "")]; return (returns + "") == "undefined"? "": returns; }); };
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":"" }
js
$.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); returntrue; } else { return $.alert(response.msg); } }, });