JS中art-template模板使用過濾器問題
art-template模板使用過濾器
html有個特點:某些小數(shù)會變成無限小數(shù)。
比如1.05,可能顯示為1.049999999999……
在javascript中可以使用.toFixed(value);等方法,進行四舍五入處理,保留固定的小數(shù)位數(shù)。
但是,art-template模板進行渲染就不支持在模板中直接使用方法。
這時就需要用到art-template模板的過濾器。
語法:
?? ?<!--HTML--> ?? ?<script type="text/html" id="template"> ?? ??? ?{{date|過濾器名稱}} ?? ?</script>
?? ?template.defaults.imports.過濾器名稱 = function(date){ ?? ? ? ?處理內(nèi)容 ?? ? ? ?return 處理結(jié)果 ?? ?};
舉個栗子
?? ?<div class="box"></div> ?? ?<script type="text/html" id="template"> ?? ??? ?<div class="total-price"> ?? ??? ??? ?{{list.unit-price*list.num|format}} 元 ?? ??? ?</div> ?? ?</script>
?? ?render(data){ ?? ??? ?// art-template過濾器 ?? ??? ?template.defaults.imports.format = function(n){ ?? ??? ??? ?return n.toFixed(2); ?? ??? ?}; ?? ??? ?// art-template模板渲染 ?? ??? ?$(".box").html(template('template',{list:data})); ?? ?}
效果圖
原本:
使用過濾器:
需要注意的是過濾器必須有一個返回值。
并且過濾器還有其他寫法。
art-template過濾器(單值,多值)
art-template過濾器
鏈接: 官方文檔-過濾器語法
過濾器處理一個值
HTML:<p>共有{{popWindow_val.freeFriend | friendNum}}位好友</p>
JS: template.defaults.imports.friendNum = function (value) { ? ? var length = value.length; ? ? return length;? }
過濾器處理兩個值
HTML:{{$imports.pkWord(pkList_val.freeTeam,pkList_val.zan)}}
JS:template.defaults.imports.pkWord = function (value,zan) { ? ? ? ? for (var i = 0, len = value.length; i < len; i++) { ? ? ? ? ? ? if (value[i].status == 2 || value[i].status == 3) { ? ? ? ? ? ? ? ? return "小組中已有人集齊點贊,趕緊分享好友,完成時間最短即可免單。"; ? ? ? ? ? ? } ? ? ? ? } ?? ? ? ? ? var word = 'PK已發(fā)起,請在24小時內(nèi)集齊' + zan + '個贊,小組內(nèi)完成集贊耗時最短者即可免單。' ? ? ? ? return word; }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
純js代碼實現(xiàn)未知寬高的元素在指定元素中垂直水平居中顯示
本章節(jié)介紹一下如何實現(xiàn)未知寬高的元素在指定元素下實現(xiàn)垂直水平居中效果,代碼簡單易懂,需要的朋友可以參考下本文2015-09-09簡單對比分析JavaScript中的apply,call與this的使用
簡單的說call,apply都屬于Function.prototype的一個方法,它是JavaScript引擎內(nèi)在實現(xiàn)的,因為屬于Function.prototype,所以每個Function對象實例(就是每個方法)都有call,apply屬性。既然作為方法的屬性,那它們的使用就當(dāng)然是針對方法的了,這兩個方法是容易混淆的2015-12-12JS簡單限制textarea內(nèi)輸入字符數(shù)量的方法
這篇文章主要介紹了JS簡單限制textarea內(nèi)輸入字符數(shù)量的方法,涉及JavaScript響應(yīng)鼠標(biāo)及鍵盤事件處理textarea輸入框字符的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10帶有定位當(dāng)前位置的百度地圖前端web api實例代碼
這篇文章主要介紹了帶有定位當(dāng)前位置的百度地圖前端web api實例代碼 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06微信小程序?qū)崿F(xiàn)事件傳參與數(shù)據(jù)同步流程詳解
這篇文章主要介紹了微信小程序開發(fā)中實現(xiàn)事件傳參與數(shù)據(jù)同步的詳細流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10