当通过服务调用获取数据时,extjs store收集不工作

时间:2012-12-07 12:19:32

标签: extjs

我正在使用ext4。我必须使用存储中的数据填充具有不同值的四个组合框。 但是在商店中使用collect方法时,它会给出空数组。当我在商店中有静态数据时它会起作用,但是当我在商店中使用代理获取数据时它不起作用。

    /* inside view */
    initComponent: function() {
            console.log('inside menu Panel ');
            var me = this;
            var filterCriteriaStore = Ext.create('ITChart.store.StoreForMenu');
            Ext.applyIf(me, {
                defaults:{
                    margin:'20 40 20 20'
                },
                items: [
                        {
                            xtype: 'combo',
                            id: 'territory',
                            store: filterCriteriaStore.collect('territory'),
                            displayField: 'territory',
                            valueField:'territory',
                            maxWidth:'100',
                            margin: '20 40 20 0',
                            value: 'ABC'
                        },
                        {
                            xtype: 'combo',
                            id: 'content',
                            store: filterCriteriaStore.collect('content'),
                            displayField: 'content',
                            valueField:'content',
                            maxWidth:'100',
                            value: 'XYZ'
                        }
                        ]

            });
            me.callParent(arguments);
        }

    /* not working */
    /* inside store */
    proxy: {
            type: 'ajax',
            url : 'http://localhost:8080/ServiceName/getFilterCriteriaExt',
            reader: {
                type: 'json',
                root: 'responseDTO'
            }/*,
            headers: {
                'Content-Type': 'application/json; charset=utf-8; Cache-Control: no-cache'
            }*/
            //actionMethods: 'POST'
        },

    /* working */
    /* inside store */
    data : [
{"content":"XYZ","type":"Song","territory":"ABC","payment":"Paid","errorCode":""},{"content":"Music","type":"Album","territory":"ABC","payment":"Paid","errorCode":""},{"content":"XYZ","type":"Song","territory":"IND","payment":"Paid","errorCode":""},
{"content":"Music","type":"Album","territory":"ABC","payment":"Paid","errorCode":""},
{"content":"Movie","type":"Song","territory":"CHINA","payment":"NotPaid","errorCode":""},
{"content":"Music","type":"Song","territory":"IND","payment":"NotPaid","errorCode":""}
    ]

1 个答案:

答案 0 :(得分:1)

您确定商店已加载吗?否则,您必须先加载商店,因为在定义静态数据时,不必实际加载。

var filterCriteriaStore = Ext.create('ITChart.store.StoreForMenu');
filterCriteriaStore.load();