2017-08-14 211 views
2

I have a model defined as BUS having fields tyre (string), color(string) , company(string)。在主面板中试图通过ajax和其他web服务调用来读取数据。这两者需要在同一个GRID上显示。如何将对象数组转换为模型对象数组

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

当使用chrome开发工具进行检查时,在我看来,从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 

所述一个我从web服务获取就像是一个阵列,其我基本上相结合,并试图显示在GRID但网格显示仅由上述类型的对象在正常对象。

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

在我推入主数组之前,是否需要将它转换为模型类型?

+0

在简单的话怎么我的对象数组映射到模型对象的数组,并添加到我的商店最终 – NeverGiveUp161

+0

可以有人帮忙对象的数组,请? – NeverGiveUp161

+0

store.loadFromRaw? – user3930361

回答

2

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

有点像这样。

var modelObjectArray = []; 

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

这样你会得到的模型记录

+0

假设我有一个正常的对象NorObj现在在函数内的数组(正常对象>我应该使用什么?是这种类型? – NeverGiveUp161

+0

@ NeverGiveUp161通过normalObject我的意思是纯JavaScript对象,例如; var obj = {tire:“eight” ,颜色:“blue”};你可以任意命名它 – Shahbaz

+0

好吧,我调整了迭代部分。我没有意识到的东西是Ext.create('Complete.Model.Name',normalObject);它我们面临的唯一问题是模型记录里面有数据,而使用Ext.create创建的数据对象里面有一个数据对象,这个数据对象又包含模型对象的所有字段+另外一个数据对象实际值 – NeverGiveUp161

相关问题