最近才接触js的模板引擎据说相比之前使用的js foreach加载后台返回的json数据简便不少并且效率方面也很不错。今天本身玩了一下html
后台使用的是.net mvc,数据库脚本就不提供了,返回的JsonResult,将数据存放在data中,前台经过ajax配合模板引擎进行一个调用而后以表格的形式显示数据。git
前台html代码:github
<a href="#" onclick="GetData()">获取数据</a> <table class="table"> <tr> <td>姓名</td> <td>年龄</td> <td>说明</td> </tr> <tbody id="tb"> </tbody> </table>
js代码:固然首先你得先导入art-template.js 下载地址:http://aui.github.io/art-template/ajax
重点来讲说这里:数据库
首先第一步:加载art-template.js的文件json
第二步:定义模板引擎并在里面进行数据的加载吧(我的理解),在网上也找了一下资料,说script type的值不能是text/script,否则会形成没法解析。也就是说除开text/script应该均可以,这里我用的是text/template(原谅我不去度娘)。mvc
第三步:就是处理请求回来的数据怎么显示了,先来看看ajax请求成功后我直接将data存放在template做为第二个参数,第一个参数对应定义模板引擎的id经过最后var去接收。完了之后就是在模板引擎中进行渲染,这里经过each data,这是一种标准语法吧,就比如以前经过模板字符串拼接的一个升级版,固然可能好处更多。data就是后台返回回来的json数据,post
经过{{$(value)}}的方式去拿到对应的数据,这样看来比之前foreach循环而后拼接字符串真的好太多,后期维护也比较好。ui
<script src="~/resources/art-template.js"></script> <script type="text/template" id="tbdata"> {{each data}} <tr> <td>{{$value.Name}}</td> <td>{{$value.Age}}</td> <td>{{$value.Desc}}</td> </tr> {{/each}} </script> <script> function GetData() { $.ajax({ type: "post", url: "/Test/Index", data: {}, success: function (data) { var result = template('tbdata', data); $("#tb").html(result); } }); } </script>
后台代码:这里经过ef从数据库加载数据url
public class TestController : Controller { testDBEntities db=new testDBEntities(); // GET: Test [HttpPost] public JsonResult Index() { var datas = db.Tests.ToList(); return Json(new { data = datas }); } }
最后的显示效果:
第一次玩模板引擎,但愿之后会有更多的认识。