2017-08-14 259 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

相關問題