Sencha touch Sencha touch 2-在数据视图中显示嵌套模型

Sencha touch Sencha touch 2-在数据视图中显示嵌套模型,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我有一个代表用户的模型。用户有一些个人字段(姓名、家庭)和另一个型号(例如他的手机) 诸如此类: Ext.define('MyApp.model.User', { extend: 'Ext.data.Model', config: { fields: ['ID', 'Name', 'Family'], hasMany: { model: 'MyApp.model.Phone', name: 'Phones', associationKey: 'ph

我有一个代表用户的模型。用户有一些个人字段(姓名、家庭)和另一个型号(例如他的手机)

诸如此类:

Ext.define('MyApp.model.User', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['ID', 'Name', 'Family'],
        hasMany: { model: 'MyApp.model.Phone', name: 'Phones', associationKey: 'phones' }
   }
});

Ext.define('MyApp.model.Phone', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['ID', 'Phone', 'Type']
   }
});
现在,我想把它加载到一个dataview(我成功地做到了),并想显示用户信息,然后是属于他的手机列表,当用户点击手机时——使用布局(或消息,或任何东西——重点是获取它的ID)来显示它

问题是,当我使用itemtap时,它会获取整个记录,包括用户信息和所有电话-因此我无法真正知道是什么电话被窃听

要显示用户信息,我只需使用显示信息的itemTpl,然后列出所有手机

那么-我怎么知道窃听了什么电话

谢谢!
Roman

除非直接将
phones
userRecord.phones()
)存储绑定到数据视图,否则没有干净的方法可以做到这一点。相反,您需要获取
itemtap
事件的目标,并检查它是什么元素

itemtap: function(me, index, target, record, e) {
    var el = Ext.get(e.target);
    alert(el.dom.innerHTML);
}
完整示例:

Ext.application({
    name: 'Sencha',

    launch: function() {
        Ext.create('Ext.DataView', {
            fullscreen: true,
            store: {
                fields: ['name'],
                data: [
                    { name: 'one' },
                    { name: 'two' }
                ]
            },
            itemTpl: '{name} <span>tap me</span>',
            listeners: {
                itemtap: function(me, index, target, record, e) {
                    var el = Ext.get(e.target);
                    alert(el.dom.innerHTML);
                }
            }
        });
    }
});
Ext.application({
名称:"Sencha",,
启动:函数(){
Ext.create('Ext.DataView'{
全屏:对,
商店:{
字段:['name'],
数据:[
{name:'one'},
{name:'two'}
]
},
itemTpl:“{name}点击我”,
听众:{
itemtap:函数(me、索引、目标、记录、e){
var el=Ext.get(e.target);
警报(el.dom.innerHTML);
}
}
});
}
});

我最终做了什么:)谢谢。我为每个div添加了一个数据属性,这样当我得到DOM对象时,我就可以知道选择了什么记录