在单个xtemplte中显示不同的商店数据

时间:2014-01-31 08:56:00

标签: html5 extjs model sencha-touch-2

我有两个商店及其相应的型号......

民意调查模式

Ext.define('PollsTest.model.Poll', {
extend: 'Ext.data.Model',
xtype : 'poll', 

requires: [
    'Ext.data.identifier.Uuid'
],


config: {
    fields: [
        { name: 'title'},
        { name: 'uri' },


    ],
    identifier: {
                type: 'uuid'
            },
    hasMany :
            [
                {
                    model : 'PollsTest.model.Choice',
                    name : 'Choices',
                    primaryKey : 'title',
                    foreignKey : 'title',
                    foreignStore : 'Choices'
                }
            ]

}


});

选择模型

    Ext.define('PollsTest.model.Choice', {
    extend: 'Ext.data.Model',

   requires: [
        'Ext.data.identifier.Uuid'
    ],


    config: {
        fields: [
            { name: 'choice', type: 'auto' },
            { name: 'votes', type: 'auto' },
            {name : 'title', type: 'auto'},
            {name : 'uri', type : 'auto'}

        ],

      identifier: {
                    type: 'uuid'
                }, 

    belongsTo : {
                        model : 'PollsTest.model.Poll',
                        name : 'Choices',
                        primaryKey : 'title',
                        foreignKey : 'title',
                        foreignStore : 'Choices',
                        getterName: 'getChoice',
                        setterName: 'setChoice'

                }        
    }



    });

我必须以这样的方式在我的模板中显示,

'<p>{title} <br> choices : {uri}<br></p>',
'<tpl for "choices">',                      
'<p> {Choice.choice} <br></p>',
'</tpl>',

现在我没有收到任何错误,但选择没有显示在模板中。 模板是不在列表中的面板。

任何想法都将受到赞赏

2 个答案:

答案 0 :(得分:0)

您必须通过操纵两个存储来创建单个对象,然后该对象可用于在模板中呈现数据。我不确定是否还有其他方法可以做到这一点。

答案 1 :(得分:0)

我建议使用DataView,并学习如何使用XTemplates

这可以通过使用XTemplate自定义帮助函数来实现,假设数据已经加入或者不需要某种异步调用。