2013-03-05 64 views
0

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

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 


} 
}); 
+0

你是怎么弄到的? – Hunt 2013-07-27 11:18:18

回答

-1

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

Ext.create('Ext.data.Store', { 
model: 'User', 
proxy: { 
    type: 'ajax', 
    url: '/test.json', 
    reader: { 
     type: 'json', 
    } 
}, 
autoLoad: true 
}); 
+0

它是一个跨域。所以,我将不得不使用jsonp而不是ajax。 – user1288005 2013-03-05 15:59:07

0

我觉得你的“田”配置选项必须是一个正确的Ext.data.Field object,所以也许这会工作:

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

(参考来自Sencha forums

+0

仍然没有被调用 – user1288005 2013-03-05 17:56:27

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/