Extjs 模板的自訂格式化

來源:互聯網
上載者:User
假設我們打算從一變數中,列印出內容,但當中的內容有可能會佔用過多的空間。對於這種情況,通過的辦法是對該內容截取,限制在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.<formatfunction></formatfunction>}" 

這是一個簡單的執行個體,對模板執行個體加入一個"parseJson "的新函數。 

 JS代碼

 1 var tplFun = new Ext.Template(  
 2             '<table border=1 cellpadding=0 cellspacing = 0>',  
 3             '<tr><td width=90 >姓名</td>',  
 4             '<td width=120>{name}</td></tr>',  
 5             '<tr><td width=90 >年齡</td>',  
 6             '<td width=120>{age}</td></tr>',  
 7             '<tr><td width=90 >身高</td>',  
 8             '<td width=120>{stature:this.parseJson()}</td></tr>',  
 9             '</table>'  
10         );  
11         var data = {  
12             name : 'tom',  
13             age : 24,  
14             stature : {  
15                 num : 170,  
16                 unit : '厘米'  
17             }  
18         }  
19           
20         tplFun.parseJson = function(json){  
21             return json.num + json.unit;  
22         }  
23 tplFun.append('tpl-table',data);  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.