2015-11-01 37 views
2

根據this postthis one,有兩種將外部聲明存儲使用到viewModel的方法。在第一個例子中使用type,並且在第二個例子中使用source
我的問題是typesource不是documented作爲配置的一部分。使用全局聲明存儲的ExtJS5 ViewModel

是否有任何其他方式在viewModel中使用外部聲明的商店?哪一個應該使用?爲什麼?相關文檔在哪裏可以找到?
(我用extjs5.1.1 GPL)

+0

'type'屬性被支持,因爲'store'具有'Factoryable'混合。 'source'是鏈式商店的必需屬性:http://docs.sencha.com/extjs/6.0/6.0.1-classic/#!/api/Ext.data.ChainedStore-cfg-source –

+0

至於哪裏這是記錄 - 在視圖模型的商店屬性中,有一個簡短的提及,「這家商店使用商店鏈來創建一個商店支持的數據在另一家商店。」不是最「面子」的文檔,但它在那裏。 –

回答

2

type應該使用,如果你想創建一個存儲的新實例,每個視圖模型。

source如果您希望用作後備存儲的商店實例(傳入或通過商店管理器全局可用)應該使用。作爲鏈式存儲,數據更改將通過,但您可以對其進行排序或過濾,而不會影響源存儲(這對於顯示而言非常方便)。

您也可以直接創建或分配商店。分配(例如分配一個傳遞到視圖中的商店)沒有問題,但創建不受鼓勵 - 如果在定義ViewModel時使用Ext.create創建新商店,那麼該商店將位於原型上,並在所有ViewModel實例中共享。一般來說,使用StoreManger最好不要那麼做。

+0

謝謝你這個明確的答案。 – Michel