0
votes

I'm learning extJS and trying to create simple application following this and that guides.

My app.js file:

sstore = new Ext.data.Store({
    autoLoad: true,
    fields: ['firstName', 'lastName', 'educationId', 'townId'],
    proxy: {
        type: "ajax",
        url: "data",
        reader: {
            type:"json",
            root: "users"
        }
    }
});


Ext.application({
    name: 'Application',
    autoCreateViewport: true,
    controllers: ['MainController']
});

Viewport.js:

Ext.define('Application.view.Viewport', {
    extend: 'Ext.container.Viewport',
    layout: { type: "vbox", align: 'stretch' },

    items :  [{
        xtype: 'mainList',
        autoScroll: true
    }]
});

List.js:

Ext.define('Application.view.List', {
    extend: 'Ext.grid.Panel',
    alias : 'widget.mainList',
    title : 'Users',

    store: sstore,     // ***** LOOK HERE PLEASE *****
    //store: 'Users',

    columns: [
        { header: 'Имя',  dataIndex: 'firstName' },
        { header: 'Фамилия', dataIndex: 'lastName' },
        { header: 'Образование', dataIndex: 'educationId'},
        { header: 'Город', dataIndex: 'townId'}
    ]
});

Store (Users.js) :

Ext.define('Application.store.Users', {
    extend: 'Ext.data.Store',    
    storeId: 'usersStore',    
    //model: 'Application.model.User',    
    fields: ['firstName', 'lastName', 'educationId', 'townId'],    
    autoLoad: true,    
    proxy: {
        type: 'ajax',
        url: 'data',
        reader: {
            type: 'json',
            root: 'users'
        }
    },    
    onProxyLoad: function (aOperation) {
        console.log('From store');
        console.log(aOperation);
    }

});

When I'm changing store: sstore on store: 'Users' in my List.js file, it's not loading any data, but with store created in app.js file, which lives in sstore variable, it works ok.

What I tried and it didn't help:

  • using memory proxy,
  • used store: Ext.data.StoreManager.lookup('usersStore'),
  • it's not problem with backend data (because sstore works fine)

I can see that the store from Users.js is loading (because the console output from onProxyLoad function).

This is what I see in a browser:

enter image description here

Full js app lives here

My view file is here

And I'm using extJS 4.2

1

1 Answers

0
votes

This was really stupid. Problem was in onProxyLoad function. When I deleted it from store app worked as I expected.