溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【JS】JsRender模板插件的使用

發(fā)布時(shí)間:2020-05-29 13:00:19 來源:網(wǎng)絡(luò) 閱讀:1447 作者:fanpan26 欄目:編程語言

  新公司項(xiàng)目,同事推薦了我JsRender 模板插件,用了感覺挺好用的,至少比拼接字符串方便的多,而且支持綁定和函數(shù)判斷,以及一些其他的高級(jí)用法,我用到的有,數(shù)據(jù)綁定,if else 判斷,和方法綁定等。廢話不多說,開始介紹。(并非jsRender學(xué)習(xí),只是個(gè)人項(xiàng)目總結(jié))


先看一段代碼:

<script type="text/x-jsrender" id="letterSendUserInfoTemplate">
    <img class="header" src="{{:headPhotos}}" onerror="javascript:this.src=''" />
    <div class="info_warp">

        <div class="info_inner">
            <span class="username">{{:name}}</span>
            <span class="userinfo">{{:title1String}}</span>
            <span class="userinfo">{{:title2String}}</span>
        </div>
        <p class="micro_text">
            {{:microMotto}}
        </p>
    </div>
</script>

沒錯(cuò),以上就是模板了,{{}}里的就是要綁定的Model數(shù)據(jù)。首頁,頁面上引用jsrender.js不多說,如果綁定上述模板的的話,方法如下:

 var tabhtml = $("#letterSendUserInfoTemplate").render(data);
                letter.options.leftlettertabcontainer.html(tabhtml);
  var data=[{headPhotos:'',name:'',title1String:'',title2String:'',microMotto:''},
  {headPhotos:'',name:'',title1String:'',title2String:'',microMotto:''}];

其實(shí)很簡單,如果是ajax請求的話,只要把返回的數(shù)據(jù)項(xiàng)綁定到相應(yīng)的html上,然后用模板的render方法得到相應(yīng)的html,賦值給相應(yīng)的div或者其他元素,就OK了, 省去了自己拼寫html并且難維護(hù)的麻煩。


使用功能一: for循環(huán)

 {{for #data}}html代碼{{/for}}

使用功能二:if else 根據(jù)不同的條件判斷給元素賦值不同的class

class="{{if placeMent==0}}other `else`self{{/if}} {{if isRead}}`else`notRead{{/if}} clearfix"

使用功能三:用js方法,將時(shí)間轉(zhuǎn)換為固定格式,注意ShortTimeFormatter方法必須放在$.views.helpers里面

$.views.helpers({
    TimeFormatter: function (time) {
        var t = time.split('T');
        var result = t[0].substr(0, 10) + ' ' + t[1].substr(0, 5);
        return result;
    },
    ShortTimeFormatter: function (time) {
        var t = time.split('T');
        var result = t[0].substr(2, 8) + ' ' + t[1].substr(0, 5);
        return result;
    },
    LastTimeFormatter: function (time) {
        return $.getDateDiff(time);
    }
});
<div class="release_time">
                    {{>~ShortTimeFormatter(addTime)}}
                </div>

好啦,項(xiàng)目中目前就用到這么幾個(gè)簡單的方法,不過jsrender應(yīng)該會(huì)更強(qiáng)大一些,只不過我沒有用到,對此感興趣的可以上網(wǎng)艘一下吧,沒錯(cuò),  JsRender

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sr
AI