2015-10-01 73 views
0

我需要將以下內容導入到商店中,但我對我需要創建的正確模型或模型感到困惑。爲數組的商店設計模型的最佳方法?

這裏是從我的服務器返回的JSON的一個例子。基本上它是一個有兩個元素的數組,每個元素都有一個數組。每個字段的名稱都不相同。

我懷疑我需要有多個模型並且有關係,但我不確定從哪裏開始。有任何想法嗎?謝謝

[ 
    firstItems: [ 
    { 
     name : "ProductA", 
     key: "XYXZ", 
     closed: true 
    }, 
    { 
     name : "ProductB", 
     key: "AAA", 
     closed: false 
    } 
    ], 
secondItems : [ 
{ 
     desc : "test2", 
     misc: "3333", 
    }, 
    { 
     desc : "test1", 
     misc: "123" 
    } 

    ] 
] 
+0

其建模成爲JSON沒有什麼我在那個迴應中看到第一個和第二個之間的關係。如果您在商店需要這些數據,並且這是您獲得響應的唯一方法,那麼我會爲第一個和第二個創建2個商店。然後對數據執行Ajax請求,並在成功方法中爲第一個和第二個使用stores loadData或loadRawData方法。 – bakamike

+0

你顯示的不是JSON。數組沒有屬性。 [看我的回答](http://stackoverflow.com/a/32908928/227299) –

回答

1

你有什麼不JSON,你的開場和結束[]可以通過其更改爲{},然後使用以下機型

然後,你可以爲

// Abbreviated definitions of Models, it has changed starting at Ext 5 
Ext.define('FirstItem', fields: ['name', 'key', 'closed']) 
Ext.define('SecondItem', fields: ['desc', 'misc']) 
Ext.define('TopLevel', { 
    hasMany: [ 
     {model: 'FirstItem', name: 'firstItems'}, 
     {model: 'SecondItem', name: 'secondItems'} 
    ]  
}) 
+0

這沒有任何意義,兩種模式之間沒有共同的關鍵,​​它們可能如何關聯? – bakamike

+0

@bakamike OP顯示內嵌數據,它將是一個單一的電話。如果您要動態加載子商店,那麼您需要指定它們如何關聯和分離AJAX請求。 –

+0

謝謝,就是這樣。是的,我意識到這沒有關係。它的數據返回給我。我只需要像示例中給出的那樣填充它。謝謝! – Martin

0

使用reader爲商店的代理,它會創建適當的負載模型。 如果您需要將已經加載的json加載到商店中,請使用,但無論如何您都需要閱讀器。

+0

那麼它會創建一個動態模型?負載 ?如果是這種情況,爲什麼我們需要首先創建模型?出於興趣... – Martin

+0

如果您在存儲中指定模型,則代理將創建提供的模型的實例,否則將創建默認的Ext.data.Model。 「如果是這種情況,爲什麼我們需要首先創建模型?」 - 沒有得到這個問題,你的意思是「一審」? – yorlin

相關問題