新公司項目,同事推薦了我JsRender 模板插件,用了感覺挺好用的,至少比拼接字符串方便的多,而且支持綁定和函數判斷,以及一些其他的高級用法,我用到的有,數據綁定,if else 判斷,和方法綁定等。廢話不多說,開始介紹。(并非jsRender學習,只是個人項目總結)
先看一段代碼:
<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>沒錯,以上就是模板了,{{}}里的就是要綁定的Model數據。首頁,頁面上引用jsrender.js不多說,如果綁定上述模板的的話,方法如下:
var tabhtml = $("#letterSendUserInfoTemplate").render(data);
letter.options.leftlettertabcontainer.html(tabhtml);
var data=[{headPhotos:'',name:'',title1String:'',title2String:'',microMotto:''},
{headPhotos:'',name:'',title1String:'',title2String:'',microMotto:''}];其實很簡單,如果是ajax請求的話,只要把返回的數據項綁定到相應的html上,然后用模板的render方法得到相應的html,賦值給相應的div或者其他元素,就OK了, 省去了自己拼寫html并且難維護的麻煩。
使用功能一: for循環
{{for #data}}html代碼{{/for}}使用功能二:if else 根據不同的條件判斷給元素賦值不同的class
class="{{if placeMent==0}}other `else`self{{/if}} {{if isRead}}`else`notRead{{/if}} clearfix"使用功能三:用js方法,將時間轉換為固定格式,注意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>好啦,項目中目前就用到這么幾個簡單的方法,不過jsrender應該會更強大一些,只不過我沒有用到,對此感興趣的可以上網艘一下吧,沒錯, JsRender
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。