extjs - 如何将对象数组转换为模型对象数组

标签 extjs extjs4

我有一个定义为 BUS 的模型,其字段有轮胎(字符串)、颜色(字符串)、公司(字符串)。在主面板中尝试通过 ajax 读取数据,其他通过一些Web服务调用。这两者都需要显示在同一个GRID上。

在商店中,我正在创建一个记录数组,其中有两个数组,一个由 ajax 调用准备,另一个由 webservice 数据准备。我调用一个方法并从 webservice 获取数据并将其推送到主记录数组,该数组执行以下操作:有数据,但存储的对象类型不同。

当使用chrome开发工具检查时,在我看来,从ajax准备的一个相当于模型,另一个只是具有一些字段的对象。下面有model:function,它指向定义的模型。

data:Object > this have values exactly like my webservice array object.
dirty:false
editing:false
events:Object
id:"travel.data.model.BUS-ext-record-1613"
index:2
internalId:"ext-record-1613"
modified:Object
phantom:true
raw:Object
store:m

我从 web 服务获得的对象就像数组中的普通对象,我基本上将其组合并尝试在 GRID 上显示,但 GRID 仅显示上述类型的对象。

data : Object > see this object does not have those other properties
tyre: "eight"
color: "blue"

在插入主数组之前我需要将其转换为模型类型吗?

最佳答案

您可以循环遍历普通对象数组,并使用 Ext.create() 使用普通对象中的数据创建模型记录。

有点像这样。

var modelObjectArray = [];

Ext.Array.each(normalObjectArray, function(normalObject, index, normalObjectArrayItSelf) {
    var modelObject = Ext.create('Complete.Model.Name', normalObject);
    modelObjectArray.push(modelObject);
});

这样您将获得一个模型记录对象数组

关于extjs - 如何将对象数组转换为模型对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45679341/

相关文章:

javascript - 在启用分页的情况下记住 ExtJS 网格中的选择

json - 将 JSON 数组附加到现有的 Extjs 数据存储网格面板

javascript - ExtJS 4 Grid 自定义列排序(文件管理器样式)

extjs4 - 使用 ExtJS 生成大约一千个或更多的控件

extjs - 设置网格页码

javascript - form.getRecord() 未定义。 Extjs

css - ExtJS 4 - 文本字段的圆 Angular 不起作用

css - 如何在单击按钮时在 extjs 中点击特定的行

EXTJS 3.3.3 网格

extjs - 在 Ext JS Grid 中创建动态列