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