Summary摘要:如何利用模板(Templates)的格式化功能和加入您自定義格式的函數(shù)
Author: Aaron Conran
Translater:Frank Cheung
Published: May 16, 2007
本教程基于Ext的模板引擎展開詳述,亦是對 Shea Frederick“模板入門”教程一文的補充。假設(shè)讀者已經(jīng)初步接觸過模板(Templates),和格式化函數(shù)的基本語法為“{VARIABLE:[(可選的參數(shù))]}”。
正式開始
假設(shè)我們打算從一變量中, 打印出內(nèi)容,但當(dāng)中的內(nèi)容有可能會占用過多的空間。對于這種情況,通過的辦法是對該內(nèi)容截取,限制在50個英文字符內(nèi),然后做成連接讓用戶點擊后觀察全文。函數(shù)"ellipsis" 的功能正是這樣,可限制在任意字符數(shù)內(nèi)。另外,在截取字符串的后面,該函數(shù)還會加上“...“,以示實際的內(nèi)容還有更多。
一個模板如下示:
var myTpl = new Ext.Template('<div>{content:ellipsis(50)}<br/><a href="{moreLink}">Read More</a></div>');
通過處理,其中有47個字符是屬于內(nèi)容本身的,另外三個字符是”...“,一共50個字符。
這是一份格式化函數(shù)的列表,可用于模板:
ellipsis(length) - 對大于指定長度部分的字符串,進(jìn)行裁剪,增加省略號(“...”)的顯示。適用于只顯示前N位的字符,然后提供詳細(xì)頁面的場合。
undef -檢查一個值是否為underfined,如果是的轉(zhuǎn)換為空值
htmlEncode - 轉(zhuǎn)換(&, <, >, and ') 字符
trim - 對一段文本的前后多余的空格裁剪
substr(start, length) - 返回一個從指定位置開始的指定長度的子字符串。
lowercase - 返回一個字符串,該字符串中的字母被轉(zhuǎn)換為小寫字母。
uppercase - 返回一個字符串,該字符串中的字母被轉(zhuǎn)換為大寫字母。
capitalize - 返回一個字符串,該字符串中的第一個字母轉(zhuǎn)化為大寫字母,剩余的為小寫。
usMoney - 格式化數(shù)字到美元貨幣。如:$10.97
date[(format)] - 將一個日期解析成為一個特定格式模式的日期。如日期字符串不輸入,默認(rèn)為“月/日/年”
stripTags - 剝?nèi)プ兞康乃蠬TML標(biāo)簽
您亦可以創(chuàng)建自定義的格式化函數(shù),具體做法是,在模板的實例上加入新的方法,繼而在模板上調(diào)用,格式化的函數(shù)應(yīng)該像這樣的:"{VARIABLE:this.}"
這是一個簡單是實例,對模板實例加入一個"yesNoFormat "的新函數(shù)。yesNoFormat 與ColdFusion轉(zhuǎn)換”truthy“函數(shù)相類似 ,如果是真的輸出"Yes",假的輸出”No“。
var testCustomTpl = new Ext.Template('<div>User: {username} IsRevoked: {revoked:this.yesNoFormat}</div>');
testCustomTpl.yesNoFormat = function(value) {
return value ? 'Yes' : 'No';
};
testCustomTpl.append(document.body, {username: 'aconran', revoked: 1});
下一步
關(guān)于怎么學(xué)好EXT這個框架我的看法是,在您熟悉的IDE中打開源碼進(jìn)行閱讀。保證閣下一定會收獲不少技巧和寫代碼的好習(xí)慣,而且極有可能發(fā)現(xiàn)新的大陸,還是沒有歸檔的。熟悉模板Templates的簡單用法和格式化功能后,就可進(jìn)入下一步的學(xué)習(xí):MasterTemplates。MasterTemplates提供了處理”子模板“的功能,以方便從數(shù)據(jù)庫循環(huán)數(shù)據(jù),同時亦包含模板(Templates)的所有功能。