0

我想动态加载存储数据,不想为此使用模型。如果我提供数据列表被填充但如果我使用商店的代理它不会被调用并且 url 不会被命中。请帮忙。

Ext.define('TrainEnquiry.view.SearchTrainResults', {
 extend: 'Ext.List',
    xtype: 'searchedtrainresult',
    requires: 'Ext.data.proxy.JsonP',
    config: {
        itemId: 'searchedtrainresult',
            title: 'Train Result:',
            itemTpl: '<div class="myContent">'+ 
                    '<div><b>{number}</b> </div>' +
                    '</div>',
        store: {
                            fields: ['number'],
                            /*data: [
                                {number: 'Cowper'},
                                {number: 'Everett'},
                                {number: 'University'},
                                {number: 'Forest'}
                            ]*/
                            proxy: {
                                url: 'http://abc.amazonaws.com/search.json',
                                type:'jsonp',
                                extraParams : {
                                                'q' : '12313'
                                            },                             
                                reader: {
                                    type: 'json',
                                },
                                    success: function() {
                                        debugger;
                                             console.log('success');

                                       },
                                       failure: function() {
                                        debugger;
                                              console.log('failure');
                                        }
                        }
                    },

        onItemDisclosure: true


}
});
4

3 回答 3

0

您可以尝试从代理中删除 pageParam 和 startParam。像这样

Ext.create('Ext.data.Store', {
storeId:'UserStore',

autoLoad: true,

model: 'UserModel',

proxy: {
    type: 'jsonp', // Because it's a cross-domain

    url : 'https://api.twitter.com/1/lists/members.json?owner_screen_name=Sencha&slug=sencha-team&skip_status=true',

    reader: {
        type: 'json',
        root: 'users' // The returned JSON will have array 
                      // of users under a "users" property
    },

    // Removing pageParam and startParam
    pageParam: undefined,
    startParam: undefined
}
});

这是一个示例http://jsfiddle.net/alexrom7/YNTuN/

于 2013-03-05T19:41:25.127 回答
0

我认为您的“字段”配置选项需要是一个适当的Ext.data.Field对象,所以也许这会起作用:

Ext.define('TrainEnquiry.view.SearchTrainResults', {
  ...
  config: {
    ...
    store: {
      fields: [ { name: 'number', type: 'string'} ],
      proxy: {
        ...
      }
    },
    ...
  }
});

(来自Sencha 论坛的参考)

于 2013-03-05T17:18:02.857 回答
-1

尝试将代理存储的类型更改为 Ajax(类型:'ajax')。像这样

Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
    type: 'ajax',
    url: '/test.json',
    reader: {
        type: 'json',
    }
},
autoLoad: true
});
于 2013-03-05T14:14:23.333 回答