javascript - 创建 extjs 存储数据记录失败

标签 javascript extjs store

我遇到错误未捕获类型错误:无法读取未定义的属性“items”
我在下面的行中创建 NewEditInfo 类型。 警报显示数组中有值,所以我不知道..

getNewEditInfo : function () {
        var values = {};
        var form = this.getForm();
        var formValues = form.getValues();
        for (var fieldName in formValues)
            values[fieldName] = (formValues[fieldName] != "") ? formValues[fieldName] : null;
        alert(JSON.stringify(values));
        alert(JSON.stringify(formValues));
        NewEditInfo = Ext.data.Record.create([{
                        name : "id",
                        type : "string"
                    }, {
                        name : "hardwareId",
                        type : "string"
                    }, {
                        name : "location",
                        type : "string"
                    }, {
                        name : "active",
                        type : "string"
                    }
                ]);

        var newEditInfoInstance = new NewEditInfo({
                id : values['idField'],
                hardwareId : values['hardwareIdField'],
                location : values['location '],
                active : values['active']
            });
        return newEditInfoInstance;
    }

有人可以帮忙吗?

最佳答案

Ext.data.Record.create() 不返回模型类,而是返回新的模型实例。

首先你应该定义自己的模型:

Ext.define('editInfoModel', {
    extend: 'Ext.data.Model',
    fields: [
        {
            name : "id",
            type : "string"
        }, {
            name : "hardwareId",
            type : "string"
        }, {
            name : "location",
            type : "string"
        }, {
            name : "active",
            type : "string"
        }
    ]
});

然后在您的 getNewEditInfo 方法中,您可以创建 editInfoModel 的新实例,并通过 Ext.create() 方法设置记录数据:

var newEditInfoInstance = Ext.create('editInfoModel', {
    id : values['idField'],
    hardwareId : values['hardwareIdField'],
    location : values['location '],
    active : values['active']
});

关于javascript - 创建 extjs 存储数据记录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486648/

相关文章:

javascript - 每次选择项目时,即使同时选择该项目两次,ComboBox 也会触发事件

java - Hibernate:将 Double 作为 Int 保存到数据库

javascript - 如何直接从服务器端过滤的存储中获取值

react native 异步存储 : What exactly does 'clear()' function clear?

javascript - 如何像 jQuery RemoveAll() 一样删除 angularJS 中的数组元素?

javascript - 如何使用 JSDoc 记录导出类实例的模块

javascript - 在 initComponent 中验证

extjs - 为什么 Sencha CMD 构建失败并出现 PhantomJS 错误代码 2?

javascript - jQuery:创建一个循环,首先需要一个时间间隔,然后更改为另一个时间间隔

javascript - 保护密码客户端 Firebase