Javascript 从ExtJS中的存储访问数据?

Javascript 从ExtJS中的存储访问数据?,javascript,model-view-controller,extjs,model,store,Javascript,Model View Controller,Extjs,Model,Store,因此,我有以下代码: 模型: Ext.define('Sandbox.model.User', { extend: 'Ext.data.Model', fields: [ { name: 'Name', type: 'string' }, { name: 'Email', type: 'string' }, { name: 'TelNumber', type: 'string' }, { name: 'Role',

因此,我有以下代码:

模型:

Ext.define('Sandbox.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'Name', type: 'string' },
        { name: 'Email', type: 'string' },
        { name: 'TelNumber', type: 'string' },
        { name: 'Role', type: 'string' }
    ]
});
商店

Ext.define("Sandbox.store.Users", {
    extend : 'Ext.data.Store',
    model : 'Sandbox.model.User'
});
我有下面的Application.js,它将数据加载到存储:

Ext.define('Sandbox.Application', {
    extend: 'Ext.app.Application',

    name: 'Sandbox',

    stores: [
        'Users'
    ],

    launch: function () {

        var userStore = Ext.getStore('Users');
        userStore.add(
            [
                {
                    Name : 'John',
                    Email: 'john@gmail.com',
                    TelNumber : ' 0330 122 2800',
                    Role : 'Administrator'
                },
                {
                    Name : 'Sarah',
                    Email : 'sarah@hotmail.com',
                    TelNumber: ' 0330 122 2800',
                    Role : 'Customer'
                },
                {
                    Name : 'Brian',
                    Email : 'brian@aol.com',
                    TelNumber: ' 0330 122 2800',
                    Role : 'Supplier'
                },
                {
                    Name : 'Karen',
                    Email : 'karen@gmail.com',
                    TelNumber: ' 0330 122 2800',
                    Role : 'Administrator'
                }
           ]
         );

         var userStore = Ext.getStore('Users');
         console.log("Store size " + userStore.getCount());

         console.log("Person #1: " + userStore.getAt(0).Name);
    }
});

启动应用程序时,会记录正确的存储大小(4)。但是索引0处特定数据的第二个日志返回未定义的值。我知道ExtJS是异步的,但是数据是硬编码的;为什么将数据加载到存储中会有延迟?如何修复此代码,以便在首次在浏览器上导航到应用程序时,上述两个日志显示正确的信息?

您无法直接访问该属性。你应使用:

userStore.getAt(0).get("Name")

编辑:代码中没有其他错误,问题只是语法。“ExtJS是异步的”是一个很大的误解,因为它只是一个js库,不能是异步的。您编写代码的方式可以是这样的,但在您的示例中却没有。您可以手动将数据添加到存储。

您无法直接访问该属性。你应使用:

userStore.getAt(0).get("Name")
编辑:代码中没有其他错误,问题只是语法。“ExtJS是异步的”是一个很大的误解,因为它只是一个js库,不能是异步的。您编写代码的方式可以是这样的,但在您的示例中却没有。您可以手动将数据添加到存储中