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

时间:2017-08-14 16:52:56

标签: extjs extjs4

I have a model defined as BUS having fields tyre (string), color(string) , company(string)。在主面板中尝试通过ajax和其他一些webservice调用来读取数据。这需要在同一个GRID上显示。

在商店中我创建了一个记录数组,其中有两个数组,一个是由ajax调用准备的,另一个是由webservice数据编写的。我调用一个方法从webservice获取数据并将其推送到主记录数组中拥有数据,但它存储的对象类型不同。

当使用chrome dev工具检查时,在我看来,从ajax准备的那个等同于模型而另一个只是具有一些字段的对象。下面有模型:指向模型定义的函数。

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

我从webservice获得的那个就像数组中的普通Object一样,我基本上组合并尝试在GRID上显示但GRID只显示上述类型的对象。

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

在推入主阵列之前,是否需要将其转换为模型类型?

1 个答案:

答案 0 :(得分:2)

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

有点像这样。

var modelObjectArray = [];

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

通过这种方式,您将获得一组模型记录

的对象