2014-06-12 30 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" } }

现在我的应用程序确实从视图拉链查看