gpt4 book ai didi

javascript - 基于 ItemFileReadStore 和基于父模型的 Dojo Tree

转载 作者:行者123 更新时间:2023-12-03 09:13:33 25 4
gpt4 key购买 nike

我正在尝试以编程方式从 json 文件创建 dojo 树。问题是我的 json 对象引用了它们的 parent 而不是 child ,如某些示例所示。不幸的是我的输出看起来只是这样:

enter image description here

我有以下 JavaScript 代码:

<script type="text/javascript"> 
require(["dijit/Tree", "dojo/data/ItemFileReadStore", "dijit/tree/ForestStoreModel", "dijit/tree/ObjectStoreModel", "dojo/domReady!"],
function(Tree, ItemFileReadStore, ObjectStoreModel, ForestStoreModel){
var store = new ItemFileReadStore({
url: "/_data/test.json",
getChildren: function(object){
return this.query({F_TopLevelCategoryID: object.P_CategoryID});
}
});

var myModel = new ObjectStoreModel({
store: store,
labelAttr:'CategoryName',
query: {"P_CategoryID": 0}
});

var myTree = new Tree({
model: myModel
}, "treeOne");
myTree.startup();
});
</script>

json 文件如下所示:

{ "identifier" : "P_CategoryID",
"label" : "CategoryName",
"items" : [ { "CategoryName" : "Category 1",
"F_TopLevelCategoryID" : 0,
"P_CategoryID" : 1
},
{ "CategoryName" : "Category 2",
"F_TopLevelCategoryID" : 1,
"P_CategoryID" : 2
},
{ "CategoryName" : "Category 3",
"F_TopLevelCategoryID" : 1,
"P_CategoryID" : 3
},
{ "CategoryName" : "Category 4",
"F_TopLevelCategoryID" : 1,
"P_CategoryID" : 4
},
{ "CategoryName" : "Category 5",
"F_TopLevelCategoryID" : 3,
"P_CategoryID" : 5
},
{ "CategoryName" : "Category 6",
"F_TopLevelCategoryID" : 4,
"P_CategoryID" : 6
},
{ "CategoryName" : "Category 7",
"F_TopLevelCategoryID" : 4,
"P_CategoryID" : 7
},
{ "CategoryName" : "Category 8",
"F_TopLevelCategoryID" : 0,
"P_CategoryID" : 8
},
{ "CategoryName" : "Top Level Category",
"P_CategoryID" : 0
}
]
}

问题出在哪里?

最佳答案

我认为您收到部分结果纯属侥幸。

您在 require block 中调换了 ForestStoreModel 和 objectStoreModel,并且引用父级就可以了!

此外,使用 dojo/store 而不是 ItemFileReadStore,因为后者已被弃用。使用内存上的数据参数:

var store = new Memory({
data: testJson,
getChildren: ...
});

在这里查看我的工作 fiddle ,使用dojo/store/Memory:https://jsfiddle.net/yubp45sa/

您可以使用 dojo/request 将数据存入内存存储:

request("testData.json").then(...);

http://dojotoolkit.org/reference-guide/1.10/dojo/request.html

我之前有另一个请求示例,它通过自定义 NodeJS 路由的 GET 请求数据(返回 JSON):

request.get("/configInfo", {
handleAs: "json"
}).then(...);

关于javascript - 基于 ItemFileReadStore 和基于父模型的 Dojo Tree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com