<div dojoType="dojo.data.ItemFileWriteStore" jsId="myStore" id="treeDemo"></div> <!-- 设置数据源 --> <div dojoType="dijit.tree.TreeStoreModel" jsId="catModel" store="myStore" query="{id: '0'}"></div><!-- 设置树的缓存模型 --> <div id="collectionsTree" data-dojo-type="dijit.Tree" data-dojo-props='"class":"container", model:catModel,......></div><!-- 引用缓存模型 -->
dojo.data.ItemFileWriteStore是一个读文件的类, 但是可以设置他的data属性效果是一样的
//这个是仿的data数据 var itemsArr = [{ id : '0', name : '李英夫', department : 'w3', root : true, level : 1, children : [{_reference: '1'}, {_reference: '2'},{_reference: '3'}] },{ id : '1', name : '类别1', department : '部门甲', level : 2, children : [{_reference: '4'},{_reference: '5'}] },{ id : '4', name : '路人乙', department : '部门乙', level : 3 },{ id : '5', name : '路人丙', department : '部门丙', level : 3 },{ id : '2', name : '路人丁', department : '部门丁', level : 3 },{ id : '3', name : '路人戊', department : '部门戊', level : 3 }]; //将数据变成字符串 var treeData = function(items){ this._identifier = 'id'; this._label = 'name'; this._items = items; this.getData = function(){ var s = "{"; s += "identifier:'" + this._identifier + "',"; s += "label:'" + this._label + "',"; s += "items:["; for(var i = 0, len = this._items.length; i < len; i++){ s += "{id:'" + this._items[i].id + "',"; s += "name:'" + this._items[i].name + "',"; s += "department:'" + this._items[i].department + "',"; s += "level:" + this._items[i].level + ""; if(!!this._items[i].children){ s += ",children : ["; var cs = this._items[i].children; for(var j = 0, jLen = cs.length; j < jLen; j++){ s += "{_reference:'" + cs[j]._reference + (j == (jLen-1) ? "'}]" : "'},"); } } s += (i == (len-1) ? "}" : "},"); } s += "]}"; return s; }; } //添加到dojo.data.ItemFileWriteStore所声明的标签中. document.getElementById("treeDemo").setAttribute("data", new treeData(itemsArr).getData());