Search code examples
sencha-touch-2storerss-readergoogle-feed-api

Sencha Touch 2.3 ( Unable to load data from a json file in sencha touch 2 )


I've trying to add parameter to url when Json store load but i'm taking this error that "Unable to load data." Here is the code of my store.

Ext.define('RssFeed.store.RssFeeds', {
    extend: 'Ext.data.Store',

    requires: [
        'RssFeed.model.RssFeed',
        'Ext.data.proxy.JsonP',
        'Ext.data.reader.Json'
    ],

    config: {
        model: 'RssFeed.model.RssFeed',
        storeId: 'RssFeeds',
        proxy: {
            type: 'jsonp',
            url: 'https://ajax.googleapis.com/ajax/services/search/news?v=1.0',
            reader: {
                type: 'json',
                rootProperty: 'responseData.results'
            }
        }
    },

    searchFeed: function(request) {
        var request="turkey";
        Ext.getStore('RssFeeds').load({
            params: {
                q:request
            }
        });
    }

});

Solution

  • Hi your store seems correct and I tested it in my local machine.

    Ext.define('MyApp.store.RssFeeds', {
        extend: 'Ext.data.Store',
    
        requires: [
            'Ext.data.proxy.JsonP',
            'Ext.data.reader.Json'
        ],
    
        config: {
            //model: 'RssFeed.model.RssFeed',
            fields:['title'],
            storeId: 'RssFeeds',
            proxy: {
                type: 'jsonp',
                url: 'https://ajax.googleapis.com/ajax/services/search/news?v=1.0',
                reader: {
                    type: 'json',
                    rootProperty: 'responseData.results'
                }
            }
        },
    
        searchFeed: function(request) {
            request = request || '';
            Ext.getStore('RssFeeds').load({
                params: {
                    q:request
                }
            });
        }
    });
    

    Here's how I used it..

    var store = Ext.create('MyApp.store.RssFeeds'); store.searchFeed('Philippines');