使用存储代理api的Extjs;原油

tvokkenx  于 2022-09-26  发布在  其他
关注(0)|答案(2)|浏览(176)

嗨,我已经尝试实现了作者。js和我收到一个错误:Uncaught TypeError:Object#没有方法“read”
以下是我的代码片段,如果您能帮助解决此问题,我们将不胜感激:

Ext.onReady(function(){

var store = Ext.create('Ext.data.Store', {
    model: 'User',
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'ajax',
        api: {
            read: '/orm_2/view/user/app/remote/app/controllers/users.php?action=view',
            create: '/orm_2/view/user/app/remote/app/controllers/users.php?action=create',
            update: '/orm_2/view/user/app/remote/app/controllers/users.php?action=update',
            destroy: '/orm_2/view/user/app/remote/app/controllers/users.php?action=destroy'
        },
        reader: {
            type: 'json',
            successProperty: 'success',
            root: 'USERS',
            messageProperty: 'message'
        },
        writer: {
            type: 'json',
            writeAllFields: true,
            root: 'USERS'
        },
        listeners: {
            exception: function(proxy, response, operation){
                Ext.MessageBox.show({
                    title: 'REMOTE EXCEPTION',
                    msg: operation.getError(),
                    icon: Ext.MessageBox.ERROR,
                    buttons: Ext.Msg.OK
                });
            }
        }
    },
    listeners: {
        write: function(proxy, operation){
            if (operation.action == 'destroy') {
                main.child('#form').setActiveRecord(null);
            }
            Ext.example.msg(operation.action, operation.resultSet.message);
        }
    }
});

var main = Ext.create('Ext.container.Container', {
    padding: '0 0 0 20',
    width: 500,
    height: 450,
    renderTo: document.body,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    items: [{
        itemId: 'form',
        xtype: 'writerform',
        height: 150,
        margins: '0 0 10 0',
        listeners: {
            create: function(form, data){
                store.insert(0, data);
            }
        }
    }, {
        itemId: 'grid',
        xtype: 'writergrid',
        title: 'User List',
        flex: 1,
        store: 'UserStore',
        listeners: {
            selectionchange: function(selModel, selected) {
                main.child('#form').setActiveRecord(selected[0] || null);
            }
        }
    }]
});
});
bcs8qyzn

bcs8qyzn1#

当我在加载商店之前没有初始化我的模型时,我遇到了这个错误。因此,在我的示例中,执行Ext.create('my.model')或将我的模型添加到requires属性修复了此错误:
“Uncaught TypeError:对象#没有“read”方法。”。
看起来您的模型名为“用户”,就在您创建店铺之前,请拨打以下电话:

Ext.create('User');
34gzjxbg

34gzjxbg2#

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: [some fields]
});

分机4.1

相关问题