2

我正在尝试创建一个 Dojox.app,它从服务器读取一次数据,然后在应用程序的生命周期内根据需要查询该数据。“dojo/store/JsonRest”将获取数据,“dojo/store/Memory”将用作缓存存储库。对于普通的 dojo 网页,创建缓存的过程很简单。

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 参数使应用程序可以访问数据。

4

2 回答 2

0

我发现没有通过 config.json 将文件中的数据读取到内存存储中的示例、演示或 dojo 测试。GitHub 上的所有测试都将数据作为静态 json 嵌入到应用程序结构中。

我需要一种从服务器获取动态显示数据到我的应用程序的方法。经过更多研究,我找到了一种解决方法。事实证明,我不需要使用“dojo/store/Cache”来缓存数据。

三个简单的步骤。

  1. 将json文件修改为js文件,添加

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

  1. 通过脚本链接将数据读入应用程序

<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" } }

现在我的应用程序确实从一个视图压缩到另一个视图

于 2014-06-17T20:02:23.660 回答
0

您可以查看此处的教程(dojox.app)和此处的dojox.app 参考指南,以创建 dojo 商店。

于 2014-06-12T07:32:49.393 回答