ajax配合art-template模板引擎的使用

最近才接觸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 });
        }
        
    }

最後的顯示效果:

第一次玩模板引擎,但願之後會有更多的認識。

相關文章
相關標籤/搜索