1. 程式人生 > >jquery.tmpl的使用

jquery.tmpl的使用

      有程式設計基礎的朋友們都應該知道一個MVC這個概念,在前端的程式設計中,我們常常需要動態獲取資料,將資料在前臺展示出來。展示時,html的拼接成了一個十分令人苦惱的問題。如果能在前端中也有類似MVC概念的應用,將資料與html標籤進行分離,將大大減少我們的工作量,提高工作效率,同時也提高我們程式碼的可維護性。近期在前端學習中發現jquery中一個很方便的外掛:tmpl。下載地址:https://github.com/BorisMoore/jquery-tmpl/blob/master/jquery.tmpl.js。應用時必須引入1.4以上版本的jquery。

一、Tmpl中的幾種常用tag

1、${key} 與 {{= key}}

作用相同,表示取值,輸出變數(=和變數之間一定要有空格,否則無效)

${}裡面還可以放表示式

如${key +/- n}

2、{{if}}, {{else}}

    {{if Status}}

          <span>Status${Status}</span>

    {{else App}}//注意else的時候不是else  if

          <span>App${App}</span>

    {{else}}

          <span>None</span>

    {{/if}}

3、{{each}}

提供迴圈邏輯,$value訪問迭代變數 也可以自定義迭代變數(i,value)

4、{{html}}

    取出html程式碼,用法{{html html}},可理解為html格式的變數

5、{{tmpl}} and{{wrap}}.

二、tmpl中的基本用法

<!DOCTYPE html> 
<html> 
<head> 
<script src="js/jquery-2.0.3.js"></script> 
<script src="js/jquery.tmpl.js"></script><!-- https://github.com/BorisMoore/jquery-tmpl/blob/master/jquery.tmpl.js -->
</head> 
<body> 
<ul id="list"></ul>
<script type="text/template" id='UserTmpl'>
    <li>
        <span>${ID}</span>
        <span>{{= NickName}}</span>
        <span>${Age+1}</span>

        <!--判斷,等同於jq中的if  else,不同之處在於,要寫end if-->
        {{if Gender}}
            <span>男</span>
        {{else}}
            <span>女</span>
        {{/if}}
        
        <!--迴圈,類似jq中的each,對於陣列中的每個值套入模板進行操作,value類似於this此處採用$value迭代變數,-->
        <ul>
            {{each major}}
                <li>採用$value迭代變數 ${$value.name}</li>
            {{/each}}
        </ul> 

        <!--迴圈,通過自定義迭代變數(i,value) -->
        <ul> 
            {{each(i,la)  major}}
                <li>自定義迭代變數:${i+1}:{{= la.name}}</li>
            {{/each}}
        </ul>
        
        <!--取出html程式碼,此處將呈現一個按鈕-->
        {{html ht}}
    </li>
</script>

<!--定義模板,根據需求在所需處取資料中的值-->
<script type="text/javascript">
    var users=[
        {ID:"0001",NickName:"小白",Gender:false,Age:18, major:[{name: "語文"},{name: "數學"}], ht: "<button>確認</button>"},
        {ID:"0002",NickName:"小黑",Gender:true,Age:20, major:[{name: "英語"},{name: "生物"}]}
    ]; /*定義資料,資料一般是陣列或json型別的*/
    $("#list").append($("#UserTmpl").tmpl(users));
    /*("模板script標籤的id").tmpl(資料,陣列形式),返回將資料套入模板後的html*/
</script>
</body> 
</html>


三、$data $item

(以下例子來自於http://www.2cto.com/kf/201401/271190.html

$item代表當前的模板;$data代表當前的資料。

    <divid="div_item_data"></div>

    <scriptid="item_data" type="text/x-jquery-tmpl">

        <divstyle="margin-bottom:10px;">

        <span>${$data.ID}</span><!--$data代表當前的資料 -->

        <spanstyle="margin-left:10px;">${$item.getName("")}</span><!--$item代表當前的模板-->

      </div>

    </script>

    <scripttype="text/javascript">

    var users = [{ ID: 'think8848', Name:['Joseph', 'Chan'] }, { ID: 'aCloud', Name: ['Mary', 'Cheung']}];

       $("#item_data").tmpl(users,

                {

                   getName: function (spr) {

                       return this.data.Name.join(spr);

                    }

                }).appendTo('#div_item_data');

    </script>

以上是本人找到的參考資料,主要參考於

    http://www.cnblogs.com/Sunlimi/p/4378646.html

    http://www.2cto.com/kf/201401/271190.html


相關推薦

jquery.tmpl的使用

      有程式設計基礎的朋友們都應該知道一個MVC這個概念,在前端的程式設計中,我們常常需要動態獲取資料,將資料在前臺展示出來。展示時,html的拼接成了一個十分令人苦惱的問題。如果能在前端中也有類似MVC概念的應用,將資料與html標籤進行分離,將大大減少我們的工作量

jquery tmpl模板

之前用模板渲染都是用angular,無意間發現了jquery tmpl這種輕量級,其文件在這裡 官方解釋對該外掛的說明:將匹配的第一個元素作為模板,render指定的資料,簽名如下: .tmpl([data,][options]) 其中引數data的用途很明顯:用於re

jquery tmpl.js與 juicer渲染對比

最近開發專案中使用的是jquery.tmpl.js,剛開始覺得其語法看著順眼就用了,可是後來發現其渲染速度不快,所以想換一種新的模板引擎。 在網上看了其他 的一些開源模板引擎,比如說Mustache,ArtTemplate...但是覺得其語法與asp.net 開發中有些衝

tmpl 模板化引擎載入資料 Jquery

@{ ViewBag.Title = "GetCartList"; } @section HeaderScripts{ <script src="~/Scripts/jquery-1.1

jquery 獲取 outerHtml

原生 獲取 內置 方法 屬性 pos jquery att ont 在開發過程中,jQuery.html() 是獲取當前節點下的html代碼,並不包括當前節點本身的代碼,然後我們有時候確須要。找遍jQuery api文檔也沒有不論什麽方法能夠拿到。 看到有的人通過pa

jquery 操作 select 默認選擇第一個元素

tar easy eset 思路 blog reset function 標簽 數組元素   問題:點擊按鈕設置select元素的默認選項。   首先,有個環境,並引入jquery。 <!DOCTYPE html> <html> <h

jquery 深入學習筆記之中的一個 (事件綁定)

color 動態 name his pan mouseover this pre con 【jquery 事件綁定】 1、加入元素事件綁定 (1) 加入事件為當前元素 $(‘p‘).on(‘click‘,function(){ //code here ..

jquery的AJAX中各個事件執行順序

.ajax star ajaxstop jquery ajax let start 執行 .com jquery的AJAX中各個事件執行順序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success 5.aja

分針網——IT教育:jquery選擇器的用法

jQuery選擇器是jQuery庫的一大特色,用這些選擇器不但可以省去繁瑣的JavaScript 書寫方式,還可以節省時間和效率,正是有這些jQuery選擇器,才讓我們更容易的操作JavaScript的dom。 1. 基本選擇器 ·#id 根據

jQuery選擇器絕對定位實現div覆蓋

rip jquer 絕對定位 button min 覆蓋 str fun 選擇 新建html文件可以運行(jsp文件下不可運行) <!DOCTYPE html><html> <head> <meta charse

JQuery操作Ajax

urn oba ade response 當前頁 xmlhttp 另一個 orm 可選 今天就來說說jquery對於ajax的支持,jquery封裝了XMLHttpRequest的底層實現,直接調用提供的方法即可 1.$.ajax(options) 這個方法是jquery對

jQuery滑動解鎖

寬度 .com ccf blog add href 參數 插件 itl unlock.js是一款jQuery滑動解鎖插件。目前很多網站在用戶登錄和註冊時,為防止惡意攻擊,采用來滑動解鎖的驗證方式。用戶需要滑動指定的滑塊到指定位置,才能通過驗證。unlock.js可以實現這

Java程序猿的JavaScript學習筆記(12——jQuery-擴展選擇器)

type write number article mat 我們 content ace val 計劃按例如以下順序完畢這篇筆記: Java程序猿的JavaScript學習筆記(1——理念) Java程序猿的JavaScript學習筆記(2——屬性復制和繼承) Jav

jquery在ajax新加入的元素後綁定事件click

path pen con art yii 例如 () click bsp 使用YII在做一個點擊小圖。能夠在彈出窗體中顯示大圖的功能的時候,發現。GridView首頁面的列表項按點擊時一切正常,但按下了下一頁後。 再點擊小圖,就不起作用了。原來,這是GridView

jQuery Chosen 使用

技術 arc css https http master 賦值 arch dex 1.  jQuery Chosen 選擇框下拉值重置; //重置 $("#easySelBrands").val("默認值").trigger("chosen:updated"

jquery實現全選/反選功能

click demo lar sim llc res rip rop 個數 <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/h

JQuery中內容操作函數、validation表單校驗

調用方法 scrip 註意 語言 rul asc javascrip 最前面插入 獲取 JQuery:內容體拼接(可以直接拼接元素節點和內容節點)   JQuery實現:     方案1:A.append(B); == B.appendTo(A);A的後面拼接B    

分針網——每日分享: jquery選擇器的用法

提交 -c sce fse edi scrip 偶數 http n) jQuery選擇器是jQuery庫的一大特色,用這些選擇器不但可以省去繁瑣的JavaScript 書寫方式,還可以節省時間和效率,正是有這些jQuery選擇器,才讓我們更容易的操作JavaScript的

Jquery使容器自適應瀏覽器窗口

cti -s meta 方法 jquer charset mar utf-8 ava 一、幾個關鍵點 1:當文檔大小改變時可以通過哪個事件來觸發? resize([Data], fn) 可傳入data供函數fn處理。 示

jQuery選擇器引擎和Sizzle介紹

document 遞歸 展示 學院 extra 上下文 和源 err sizzle p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Arial; color: #323333 } p.p2 { margin: 0.0