2019独角兽企业重金招聘Python工程师标准>>>

有个小的工作任务将给定的一个大的json文件转换为html页面展示,搜索了一下有一些js模板可以完成这个需求,上网搜索之有artTemplate(腾讯出品),baiduTemplate(百度出品),看了github上的更新记录,都是年久失修的,不过artTemplate相对来说用的人多,issue也多,决定采用这个附上地址,

主要看语法就是一些if和each遍历了,例如

使用一个type="text/html"script标签存放模板:

<script id="test" type="text/html">
<h1>{{title}}</h1>
<ul>{{each list as value i}}<li>索引 {{i + 1}} :{{value}}</li>{{/each}}
</ul>
</script>

渲染模板

var data = {title: '标签',list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;

实例就是在页面中引入js文件,然后和普通的js没什么区别,写一个模板,然后调用template函数生成相应的html片段,然后嵌入到相应的位置就可以了,附上一个实例

<!-- 接口模板 -->
<script type="text/html" id="template_interface">   <div class="sub-nav">{{each doc.list as value i}}<ul class="sub-nav-items">{{each doc.list[i] as value j}}<li value="div{{j}}" class="nav-item"><a href="javascript:void(0);">{{j}}</a></li>{{/each}}</ul>{{/each}}</div><div>{{each doc.list as value i}}{{each doc.list[i] as value j}}<div id="div{{j}}" class="re" style="display:none"><label>接入说明</label><br/>{{value.desc}}<br/><label>URL地址</label><br/><span class="url">{{value.url}}</span><br/><label>完整URL地址</label><br/><span class="url">{{value.full_url}}</span><br/><div class="arg"><label>请求参数</label></div><div>参数列表</div><table class="charge_data" style="word-break:break-all;font-size:14px;margin-top: 5px;"><tbody id="outModelTrTbody"><tr><th style="width:20%">名称</th><th style="width:15%">类型</th><th style="width:20%">示例值</th><th class="ms">描述</th></tr>{{each value.request_params as value k}}<tr class="outModelTr db"><td key="pname">{{value.name}}</td><td key="type">{{value.type}}</td><td key="example">{{value.exp}} </td><td key="remark">{{value.detail}} </td></tr>{{/each}}</tbody></table><div class="arg"><label>返回值</label></div>返回示例<br/><div id="json">{{value.result_exp}}</div><br/>返回参数说明:<br/><table class="charge_data" style="word-break:break-all;font-size:14px;margin-top: 5px;"><tbody id="outModelTrTbody"><tr><th style="width:20%">名称</th><th style="width:15%">类型</th><th style="width:20%">示例值</th><th class="ms">描述</th></tr>{{each value.response_params as value k}}<tr class="outModelTr db"><td key="pname">{{value.name}}</td><td key="type">{{value.type}}</td><td key="example">{{value.exp}} </td><td key="remark">{{value.detail}} </td></tr>{{/each}}</tbody></table></div>{{/each}}{{/each}}</div></script>
<!-- 签名模板 -->
<script type="text/html" id="template_signature">  <div> 方法签名说明:{{signature.signature}}</div>
</script><!-- 错误码模板 -->
<script type="text/html" id="template_errorCode">   错误码说明:<br/><table class="charge_data" style="word-break:break-all;font-size:14px;margin-top: 5px;"><tbody id="outModelTrTbody"><tr><th style="width:20%">code</th><th class="ms">msg</th></tr>{{each errorCode.list as value i}}<tr class="outModelTr db"><td key="pname">{{value.code}}</td><td key="remark">{{value.msg}}</td></tr>{{/each}}</tbody></table></div>
</script><!-- 演示模板 -->
<script type="text/html" id="template_example"><div>接口演示:<br/>接口选择:<select id="select"><option>选择接口</option><option>选择接口</option>{{each doc.list as value i}}{{each doc.list[i] as value j}}<option rel="exp{{j}}" class="exp_se" value ="{{value.full_url}}">{{j}}</option>{{/each}}{{/each}}</select></div><div>{{each doc.list as value i}}{{each doc.list[i] as value j}}<div id="exp{{j}}" class="exp" style="display:none"><form action="#" method="post">参数<br/>{{each value.request_params as value k}}{{value.name}}:<input type="text" placeholder="{{value.exp}}"></input>{{if value.is_need ==1 }}必填{{/if}}<br/>{{/each}}<div class="in" id="invokeResultDiv"><span style="width:200px;">返回结果:</span><textarea readonly="" style="overflow-y: auto; height: 80px;"></textarea>    </div><input type="button" class="sub" id="testbtn" value="提交信息" style="margin-left:200px;"></form></div>{{/each}}{{/each}}</div></script>
<script>var data = {doc:{list:[{"用户接口一":{"desc":"接口使用说明xxxxxxxxxxxxx","url":"/date/test","full_url":"http://test.sds/date/test","request_params":[{"name":"name1","type":"int","exp":"13","detail":"说明","is_need":"1"},{"name":"name2","type":"int","exp":"15","detail":"说明","is_need":"0"}],"result_exp":{"hey": "guy","anumber": 243,"anobject": {"whoa": "nuts","anarray": [1, 2, "thr<h1>ee"],"anotherarray": [1, 2],"more": "stuff"},"awesome": true,"bogus": false,"meaning": null,"japanese": "明日","link": "http://jsonview.com","notLink": "http://jsonview.com is great"},"response_params":[{"name":"name1","type":"int","exp":"13","detail":"说明"},{"name":"name2","type":"int","exp":"15","detail":"说明"}]}},{"interface_2":{}}]},signature:{signature:"必传,source=1000x, sign_type=md5/token, sign=xxxxxx,使用token校验参数时候 uid为必传参数"},errorCode:{list:[{"code":"10000","msg":"success"},{"code":"100002","msg":"failed"},{"code":"100003","msg":"unknow"}]}};var html = template('template_interface', data);document.getElementById('interface_result').innerHTML = html;var html = template('template_signature', data);document.getElementById('signature_result').innerHTML = html;var html = template('template_errorCode', data);document.getElementById('errorCode_result').innerHTML = html;var html = template('template_example', data);document.getElementById('example_result').innerHTML = html;

本人不是专业的前端工程师,??,无奈 中......记录下,万一以后用到呢

转载于:https://my.oschina.net/Chaos777/blog/731989

使用artTemplate模板将json转换为html页面相关推荐

  1. Ajax(jQuery封装),表单form提交(Ajax),art-template模板引擎,原生Ajax,XML和JSON,axios,跨域和JSONP,防抖和节流,HTTP协议

    目录 服务器基本概念 1.URL 2.URL地址的组成部分 3. 图解客户端与服务器的通信过程 4.网页中如何请求数据 5.资源的请求方式 Ajax jQuery中的Ajax 1. $.get()函数 ...

  2. Node.js 借助art-template进行后端渲染并呈现页面到前端

    文章目录 一.总体思路 二.前端在common.js发送请求 三.server.js相关配置 1.引入依赖 2.body-parser相关配置 3.art-template相关配置 4.挂载route ...

  3. Koa中使用art-template模板引擎,以及如何接受post请求等

    直接上代码,每个代码的作用都有注释: 实现了以下功能: 1.koa中如何使用路由 2.koa中如何使用art-template模板引擎 3.koa中如何使用koa-static解析静态文件 4.koa ...

  4. artTemplate模板引擎及ajax封装

    模板引擎 模板引擎介绍 客户端中拿到请求的数据过后最常见的就是把这些数据呈现到界面上. 如果数据结构简单,可以直接通过字符串操作(拼接)的方式处理,但是如果数据过于复杂,字符串拼接维护成本太大,就不推 ...

  5. Express与传统Web应用(服务端渲染、art-template模板引擎、配置静态资源托管)

    一.服务端渲染相关的概念 什么是渲染? 例如对于我们前端开发者来说最常见的一种场景就是:请求后端接口数据,然后将数据通过模板绑定语法绑定到页面中,最终呈现给用户. 数据: 模板: 渲染(数据+模板)结 ...

  6. requirejs整合art-template模板引擎

    相关官网 requirejs官网 art-template模板引擎官网 目录结构 文件目录介绍: domReady.js /用于暂停上层应用的执行,直到DOM准备好再进行 查询/修改(requirej ...

  7. 【5】天猫精灵开放平台实验—基于天气查询模板创建开发屏显页面技能

    文章目录 天猫精灵开放平台实验-基于模板创建开发屏显页面技能 一.前提准备 二.登录天猫精灵开放平台 (一)创建新技能 1.创建语音技能 2.填写基本信息 (二)创建后端服务 1.创建后端服务 2.关 ...

  8. artTemplate模板引擎

    artTemplate简介 介绍 artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前 ...

  9. express应用中ajax结合模板引擎ejs.js渲染页面

    一.express应用中ajax结合模板引擎ejs.js渲染页面 在views新建一个渲染模板命名 Template.ejs Template.ejs 示例: <% if(coursesList ...

最新文章

  1. 在SDN走向商用部署的路上,锐捷网络一直在不断实践
  2. python实现文件共享_改进的一行Python实现文件共享--支持并发
  3. 懂得保持平衡的程序员
  4. Python使用远程仓库时建议忽略的文件
  5. mysql bytessent_如何对DSQLSERVER、MySQL、Orache语句性能分析
  6. [9月29日的脚本] 枚举SharePoint列表(PowerShell)
  7. ibatis mysql 同时删多个表报错_MySQL中Multiple primary key defined报错的解决办法
  8. python是动态语言
  9. NGUI的输入框的校验(input filed script)
  10. 韩国巨型机器人曝光,走一步地动山摇
  11. 《如何搭建小微企业风控模型》第一节 小微企业数据贷发展情况概述
  12. PThread 学习笔记
  13. 转:全栈工程师的知识栈列表
  14. Qt_解决Qt5.15 + Xcode12iOS端qmake不可用的问题
  15. graphpad prism图标设置_科研绘图软件-Graphpad prism使用教程(六)
  16. python桌面程序自动化教程_桌面应用自动化python
  17. 教你删除Mac下的iCloud数据
  18. 匀速运动,太空版愤怒的小鸟
  19. Notepad++ 安装XML Tools插件格式化XML文件
  20. 关于前端frame框架

热门文章

  1. 基于ASP.NET MVC框架开发Web论坛应用程序
  2. 【Scala】Scala中特殊函数的使用(代码)
  3. 面试时被问如何进行接口测试怎么回答
  4. kafka python教程_由Flink与Kafka实践探究Kafka的两个问题
  5. arcgis不闭合线转面_地理工具学习--arcgis篇(15):CAD和SHP的简单转换
  6. echarts 有引导线和内部文字_上进青年研习社丨设计入门02:平面设计之平面构成中的线...
  7. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
  8. ef mysql不显示所有表_mysql中显示当前数据库下的所有表,包括视图。
  9. stm32仿真不能设置断点_使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
  10. python安装方法_【Python教程】Windows10 安装Python