2013-02-04 40 views
0

我有兩個模型「狀態」屬於:'用戶',我傾斜了名爲touchtweets的sencha touch 2的示例。 這裏是我的JSON文件ST2 ListItem setHtml無法獲得子節點的值

{ 
"statuses" : [{ 
    "text" : "test", 
    "user" : { 
     "name" : foo, 
       } 
      }] 
} 

官方文檔說「當記錄被更新,獲取文本配置, 呼叫setText用‘的record.but的文本’字段我嘗試setHtml: 'user.name'它沒有工作我不明白。 這裏是我的視圖代碼,

Ext.define('Demo.view.StatusesListItem', { 
extend : 'Ext.dataview.component.ListItem', 
xtype : 'statuseslistitem', 
requires : ['Demo.view.StatusesListItemText', 'Ext.Img'], 

config : { 
    dataMap : { 
     getText : { 
      setHtml : 'text',  //work well 
     }, 
     getUserName : { 
      setHtml : 'user.name', //didn't work 
     } 
    }, 
    userName : { 
     cls : 'username' 
    }, 
    text : { 
     cls : 'text' 
    }, 
    layout : { 
     type : 'vbox' 
    } 
}, 
applyUserName : function(config) { 
    console.log(Ext.factory(config, Ext.Component, this.getUserName())) 
    return Ext.factory(config, Ext.Component, this.getUserName()); 
}, 
applyText : function(config) { 
    return Ext.factory(config, Sin.view.StatusesListItemText, this.getText()); 
}, 
updateTpl : Ext.emptyFn, 

}); 

Ext.define('Demo.view.StatusesListItemText', { 
extend : 'Ext.Component', 

applyHtml : function(html) { 
    html = html.replace(/(http:\/\/[^\s]*)/g, "<a class=\"link\"  target=\"_blank\" href=\"$1\">$1</a>"); 
    return html; 
} 
}); 

setHtml不能得到子nodeuse

任何人都可以幫助我的價值? Thx你的時間

回答

0

不幸的是,這是不可能的。

一個黑客繞過這將是的getUserName值設置爲user,然後改變你的applyUserName方法訪問name屬性。

applyUserName : function(config) { 
    var name = config.name; 

    return Ext.factory(name, Ext.Component, this.getUserName()); 
} 
+0

THX,但我不明白,我必須改變我的代碼\t的數據圖:{ \t getUserName:{ \t \t setHtml: '用戶', \t \t}, \t}和applyUserName功能但在console.log config.name返回undefined,你能幫助我嗎? –