【发布时间】:2015-08-14 03:37:01
【问题描述】:
我正在尝试将数据存储缓存与树一起使用。
我收到未捕获的类型错误:object is not a function error.
我已经测试了数据并且它被正确提取。
我检查了 JSON,它也是正确的。
我哪里出错了?
require(["dojo/store/JsonRest"
, "dojo/store/Memory"
, "dojo/store/Cache"
, "dojo/json"
, "dijit/tree/ObjectStoreModel"
, "dijit/Tree"
, "dojo/domReady!"],
function (JsonRest, Memory, Cache, ObjectStoreModel, Tree) {
var restStore = new JsonRest({ target: "/DataStore/", idProperty: "id" });
var memoryStore = new Memory({
idProperty: "id",
getChildren: function (object) {
return this.query({ parent: object.id });
}
});
var store = new Cache(restStore, memoryStore);
store.query({ type: "index" }).forEach(function (item) {
console.log(item.name);
});
var docModel = new ObjectStoreModel(
{
store: store,
getRoot: function (onItem) {
this.store.get("index").then(onItem);
},
mayHaveChildren: function (object) {
return object.type === "folder" || object.type === "root";
}
});
var docTree = new Tree({
model: docModel,
onOpenClick: true,
onClick: function (item) {
if (item.type == "link") {
OpenLink(item.link);
}
},
persist: false
}, "divTree");
docTree.startup();
});
【问题讨论】:
-
这是目标 URL /DataStore/ 返回的 JSON [ { name: "Folders", id: "index", type: "index", root: true }, { name :“工作区”,id:“WKSP”,父:“索引”,类型:“文件夹”},{名称:“通用公共文件夹”,id:“GEN”,父:“索引”,类型:“文件夹” }, { name: "BIRM Public Folders", id: "BIRM", parent: "index", type: "folder" }, { name: "LA Public Folders", id: "LA", parent: "index" , type: "folder" }, { name: "SECURE Public Folders", id: "SEC", parent: "index", type: "folder" }, { name: "My Matters", id: "MMAT",父:“索引”,类型:“文件夹”}]