2014-06-12 33 views
2

我試圖創建一個Dojox.app,它從服務器讀取數據一次,然後在應用程序的生命週期中根據需要查詢數據。 「dojo/store/JsonRest」將獲取數據,「dojo/store/Memory」將用作緩存存儲庫。 創建緩存的過程對於正常的dojo網頁來說很簡單。使用config.json文件設置Dojox.app緩存存儲

require(["dojo/store/JsonRest", "dojo/store/Memory", "dojo/store/Cache", "dojo/store/Observable"], function(JsonRest, Memory, Cache, Observable){ masterStore = new JsonRest({ target: "/Inventory/" }); cacheStore = new Memory({}); inventoryStore = new Cache(masterStore, cacheStore);

然而,對於一個Dojox.app config.json文件用於設置各種MVC組件,包括數據存儲。

JSON文件的存儲和模型部分可能類似於

"stores": { 
    "restStore":{ 
     "type": "dojo/store/JsonRest", 
     "observable": true, 
     "params": { 
      "target": "/s/server/nowShowing.pl", 
      "idProperty": "filmNo" 
     } 
    }, 
    "memoryStore": { 
     "type": "dojo/store/Memory", 
     "observable": true, 
     "params": { 
      "idProperty": "filmNo" 
     } 
    }, 
    "filmStore": { 
     "type": "dojo/store/Cache", 
     "params": { 
      "masterStore": {"$ref":"#stores.restStore"}, 
      "cachingStore": {"$ref":"#stores.memoryStore"}, 
      "idProperty": "filmNo", 
     }    
    } 
}, 
"models": { 
    "store": { 
     "modelLoader": "dojox/app/utils/mvcModel", 
     "type": "dojox/mvc/StoreRefController", 
     "params":{ 
      "store": {"$ref":"#stores.filmStore"}, 
      "query": {} 
     } 
    } 
}, 

我知道,緩存存儲是一個包裝,而不是一個真正的商店。我也知道有一種方法可以通過config.json文件配置一個dojo存儲緩存,但我一直無法知道如何去做。谷歌先生沒有答案,道場測試也沒有出現。

MVC模型通過每個視圖類的loadedStores和loadedModels參數爲應用程序提供了廣泛的數據訪問。

回答

0

你可以看看這裏的教程(dojox.app)dojox.app reference guide用於創建dojo商店。

+0

感謝您的。我重新閱讀[dojox.app](https://dojotoolkit.org/reference-guide/1.10/dojox/app.html)和[參考指南](https://dojotoolkitkit/documentation/tutorials/1.9/dojox_app/contactsList /)頁面,看看我是否錯過了相關的東西。我沒有。我已經做了大量的dojo參考和API文檔的閱讀,但一直無法弄清楚如何使用配置的配置來使用dojo/store/cache從JsonRest存儲中填充內存存儲。json文件。這感覺應該是dojo/app MVC會做的事情。以上面的filmStore爲例。 – nsharrok

0

我沒有發現通過config.json將數據從文件讀入內存存儲的示例,演示或dojo測試。所有GitHub上的測試都將數據作爲靜態json嵌入到應用程序結構中。

我需要一種方法從服務器獲取動態顯示數據到我的應用程序。經過更多的研究,我找到了一個解決方法。事實證明,我不需要使用「dojo/store/Cache」來緩存數據。

三個簡單的步驟。

  1. 加入

var myJson = [{"filmNo":"2792",...

  1. 修改JSON文件轉換成JS文件通過腳本鏈接

<script type="text/javascript" src="/s/server/myJsonFile.js"></script>

    讀取數據到應用程序
  1. 在config.json文件作出的myJson參考變量

"stores": { "filmStore": { "type": "dojo/store/Memory", "params": { "data" : "myJson", "idProperty": "filmNo" } }

現在我的應用程序確實從視圖拉鍊查看