2012-07-12 147 views
2

我在EXTJS 4.1 MVC架構中工作。對此我完全陌生,並且我在考慮是否有一種在商店文件中擁有多個商店的方法。EXTJS 4 MVC架構

例如,我們有兩個目錄,模型和商店,每個目錄都有文件。在商店文件夾中有一個名爲Locations.js的文件。 Adn我想在這個文件裏面定義三個存儲。例如:'Regions','Area','City'

因此,首先當我嘗試定義第一個存儲時,螢火蟲顯示錯誤找不到store/regions.js文件。而它應該查找的文件實際上是Locations.js文件。 有沒有辦法解決這個問題,還是商店名稱和文件名應該是相同的,而且我們只能存儲在一個文件中。

+0

「定義第一家店鋪」究竟是什麼意思?在控制器中? – Izhaki 2012-07-12 12:13:30

+0

我只是想讓程序試圖找到app/store/Regions.js,而不是試圖找到app/store/Locations.js中的商店'地區' – rosebrit3 2012-07-12 13:03:43

+0

他意味着實例化商店,這會觸發Loader獲取相應的文件,它找不到。 – 2012-07-12 13:06:03

回答

3

加載程序只知道如何在自己的文件中找到類。你可以通過手動加載文件來完成,但這樣做比它的價值更麻煩,並且你將失去Ext構建依賴樹的能力,並使用SDK工具進行縮小。

堅持每個文件一個類。您可以儘可能深入,因此您的文件系統可能具有以下內容:

App/store/location/Region.js 
App/store/location/Area.js 
App/store/location/City.js 

只要確保您的類具有相應的名稱即可。 (例如App.store.location.Region) 您甚至可以擁有其他所有擴展的基地App.store.location.Location。如果這是一個大項目,我還發現從一開始就將Ext.data.Store劃分子目錄非常有用(使App.store.Store),並確保所有商店都能擴展該項目。

2

這是由Ext.loader引起的。它提供了一個動態加載「類」的系統。所以是的,當你有一個對象MyApp.store.Regions它應該在商店文件夾內的文件。

但這不應該是一個大問題。您可以使用sencha構建工具縮小1個文件。

您也可以使用disable加載程序並手動加載。 (但我不建議這樣做)