国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

使Ext的Template可以解析二層的json數據的方法

2019-11-21 01:50:44
字體:
來源:轉載
供稿:網友
Ext的Template支持通過傳入json數據的方式進行模板替換。
API中有這樣一段示例:

復制代碼 代碼如下:

var t = new Ext.Template( 
    '<div name="{id}">', 
        '<span class="{cls}">{name:trim} {value:ellipsis(10)}</span>', 
    '</div>' 
); 
t.append('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'}); 



稍作修改做個測試:

復制代碼 代碼如下:

var t = new Ext.Template( 
    '<div name="{id}">', 
        '<span class="{cls}">{name} {value}</span>', 
    '</div>' 
); 
var dt=t.apply({id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'}); 
alert(dt); 


運行上面的代碼會彈出<div name="myid"><span class="myclass">foo bar</span></div>說明替換成功。

但如果又這樣一個模板數據:

復制代碼 代碼如下:

{id: 'myid', cls:{o:'myclass'}, name: 'foo', value: 'bar'} 



我們想在替換時將模板中原cls部分替換為cls.o的值,也就是myclass,該怎么做呢?是不是想直接用{cls.o},你可以試下,絕對無效,沒有替換。因為template匹配替換是直接對{}中冒號前的字符串與JSON變量進行匹配的。當然找不到cls.o這個串所以也就不能匹配。
好在Template支持對數據的解析處理。
我們可以自己定義一個解析函數即可。其實很簡單:


復制代碼 代碼如下:

var t = new Ext.Template( 
    '<div name="{id}">', 
        '<span class="{cls:this.parseJSON}">{name} {value}</span>', 
    '</div>' 
); 
t.parseJSON=function(data){return data.o}; 
var dt=t.apply({id: 'myid', cls: {o:'myclass'}, name: 'foo', value: 'bar'}); 
alert(dt) 



我們定義了一個叫parseJSON的解析方法,在模板中訪問頂層的cls然后對cls(是一個object)的值進行處理(直接訪問它的o屬性)即可。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 恩施市| 海城市| 晋江市| 鹿泉市| 定日县| 嵊州市| 邢台县| 南充市| 铅山县| 凤山市| 翁源县| 舟曲县| 建瓯市| 阳山县| 志丹县| 盐山县| 上栗县| 海丰县| 姚安县| 星座| 本溪| 大兴区| 塘沽区| 资溪县| 莱阳市| 保靖县| 普定县| 周宁县| 阿尔山市| 怀柔区| 泗洪县| 娄烦县| 石门县| 屯留县| 平度市| 聊城市| 万安县| 济南市| 探索| 都匀市| 乌拉特后旗|