0

我有两个模型“状态”属于:“用户”,我正在学习名为 touchtweets 的 sencha touch 2 示例。这是我的 json 文件

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

官方文档说'当记录更新时,获取文本配置,并setText使用记录的'文本'字段调用。但我尝试 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 获取不到子节点use的值

任何人都可以帮助我吗?谢谢你的时间

4

1 回答 1

0

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

绕过它的一个技巧是设置 to 的值,getUserName然后user更改您的applyUserName方法以访问该name属性。

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

    return Ext.factory(name, Ext.Component, this.getUserName());
}
于 2013-02-04T14:53:29.380 回答