Javascript 树在DOJO中不显示

Javascript 树在DOJO中不显示,javascript,dojo,digit,Javascript,Dojo,Digit,我是Dojo1.6的新手 我正在尝试显示包含子文件夹的树 dojo.require("dojo.data.ItemFileWriteStore"); dojo.require("dijit.form.Button"); dojo.require("dijit.tree.TreeStoreModel"); dojo.require("dojo.store.Memory"); dojo.require("dijit.Tree");

我是Dojo1.6的新手

我正在尝试显示包含子文件夹的树

dojo.require("dojo.data.ItemFileWriteStore");
            dojo.require("dijit.form.Button");
            dojo.require("dijit.tree.TreeStoreModel");
dojo.require("dojo.store.Memory");
dojo.require("dijit.Tree");
            dojo.addOnLoad(function() {
                 // Create test store, adding the getChildren() method required by ObjectStoreModel
        var data =  [ { id: 1, name: "answerTypeLabel",                 type:'scenario',    children:[{_reference: 2}]},
                       { id: 2, name: "acceptRequestLabel",             type:'paragraph',   data: "acceptRequestLabel"},
                       { id: 3, name: "rejectRequestLabel",             type:'scenario',    children:[{_reference: 5},{_reference: 6}]},
                       { id: 4, name: "MoreInformationLabel",       type:'scenario',    children:[{_reference: 7},{_reference: 8}]},
                       { id: 5, name: "rejectRequestStatusLabel",   type:'paragraph',   data: "rejectRequestStatusLabel"},
                       { id: 6, name: "rejectRequestNotCoveredLabel", type:'paragraph',     data: "rejectRequestNotCoveredLabel" },
                       { id: 7, name: "MoreInformationDocumentLabel", type:'paragraph',     data: "MoreInformationDocumentLabel"},
                       { id: 8, name: "MoreInformationDataLabel",   type:'paragraph',   data: "MoreInformationDataLabel"}
                     ];
         // Building the store object
        var sortableStore = new dojo.data.ItemFileWriteStore({
                    data: {
                        identifier: 'id',
                        label: 'name',
                        items: data 
                    },
                    });
        // building the model           
        var model = new dijit.tree.ForestStoreModel({

                    store: sortableStore, 
            query: { 
                id: "*" 
            }, 
            rootId: "root", 
            rootLabel: "sorting of tree"

        }); 
        // Building the tree            
        var tree = new dijit.Tree({

            model:model,
            'class': "tundra" 
        },
        "resourceTree");

            });

此处Id 2位于Id 1的子级中,因此显示Id 2时必须位于Id 1内。 但在这里,ID2出现在ID1内部,也出现在ID1的同一级别上(所有子Id都有一个副本)。 这是id为2,5,6,7,8的情况

我想删除重复项

输出应该像


原因是您在树上应用了一个非层次存储,该树不应显示父项作为根的同级项的项目

要“修复”此问题,引用id的需要通过
模型查询
不匹配

对于数据,它看起来像是
类型:'paragration'
应该是leaves。因此,将查询设置为匹配
类型:'scenario'
,而不是当前的'id:'*''


哦,是的。。我的错。。谢谢:)现在必须使用对存储服务器端imo进行排序
    var model = new dijit.tree.ForestStoreModel({

                store: sortableStore, 
        query: { 
            type:'scenario'
        }, 
        rootId: "root", 
        rootLabel: "sorting of tree"

    });