0

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");

            });

コードの出力

ここでは、Id1の子のId2であるため、Id2を表示している間はId1の内部にある必要があります。 ids)。これは、ID2,5,6,7,8の場合です。

重複を削除したい。

出力は次のようになります

正しい出力は次のようになります

4

1 に答える 1

1

理由は、ルートの兄弟として親を持つアイテムを表示することを想定していないツリーに非階層ストアを適用するためです。

これを「修正」するには、参照されるIDが。と一致しないようにする必要がありmodel queryます。

あなたのデータの場合、それはtype:'paragraph'葉であると思われます。したがってtype:'scenario'、現在の'id: "*"'ではなく、一致するようにクエリを設定します。

    var model = new dijit.tree.ForestStoreModel({

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

    }); 
于 2012-10-03T17:51:28.957 に答える