gpt4 book ai didi

javascript - 将节点添加到 Dojo 树

转载 作者:行者123 更新时间:2023-12-03 06:46:08 25 4
gpt4 key购买 nike

我有一个 Dojo 树,我正在尝试在末尾添加一个节点。我尝试通过以下代码更新商店。虽然存储已按树更新,但并未显示新节点。

this.virtualtree.model.store.put({type:"form",parent:"wpRoot",id:"ABC",name:"ABC"});

后来我尝试在模型上使用 PasteItem 函数。下面是代码。但它仍然不起作用。

this.virtualtree.model.pasteItem({"type":"form","parent":"wpRoot","id":"ABC","name":"ABC"},window._self.virtualtree.model.root,window._self.virtualtree.model.root,true,9,true);

请告诉我如何修改树。

最佳答案

您必须将 dojo/store/Observablestore.add()
结合使用查看 dojo 在线文档:https://dojotoolkit.org/reference-guide/1.10/dijit/Tree.html#id7

请参阅下面的工作示例:

require([
"dojo/_base/window", "dojo/store/Memory", "dojo/store/Observable",
"dijit/tree/ObjectStoreModel", "dijit/Tree",
"dojo/domReady!"
], function(win, Memory, Observable, ObjectStoreModel, Tree){

// Create test store, adding the getChildren() method required by ObjectStoreModel
var myStore = new Memory({
data: [
{ id: 'world', name:'The earth', type:'planet', population: '6 billion'},
{ id: 'AF', name:'Africa', type:'continent', population:'900 million', area: '30,221,532 sq km',
timezone: '-1 UTC to +4 UTC', parent: 'world'},
{ id: 'EG', name:'Egypt', type:'country', parent: 'AF' },
{ id: 'KE', name:'Kenya', type:'country', parent: 'AF' },
{ id: 'Nairobi', name:'Nairobi', type:'city', parent: 'KE' },
{ id: 'Mombasa', name:'Mombasa', type:'city', parent: 'KE' },
{ id: 'SD', name:'Sudan', type:'country', parent: 'AF' },
{ id: 'Khartoum', name:'Khartoum', type:'city', parent: 'SD' },
{ id: 'AS', name:'Asia', type:'continent', parent: 'world' },
{ id: 'CN', name:'China', type:'country', parent: 'AS' },
{ id: 'IN', name:'India', type:'country', parent: 'AS' },
{ id: 'RU', name:'Russia', type:'country', parent: 'AS' },
{ id: 'MN', name:'Mongolia', type:'country', parent: 'AS' },
{ id: 'OC', name:'Oceania', type:'continent', population:'21 million', parent: 'world'},
{ id: 'EU', name:'Europe', type:'continent', parent: 'world' },
{ id: 'DE', name:'Germany', type:'country', parent: 'EU' },
{ id: 'FR', name:'France', type:'country', parent: 'EU' },
{ id: 'ES', name:'Spain', type:'country', parent: 'EU' },
{ id: 'IT', name:'Italy', type:'country', parent: 'EU' },
{ id: 'NA', name:'North America', type:'continent', parent: 'world' },
{ id: 'SA', name:'South America', type:'continent', parent: 'world' }
],
getChildren: function(object){
// Add a getChildren() method to store for the data model where
// children objects point to their parent (aka relational model)
return this.query({parent: object.id});
}
});
myStore = new Observable(myStore);
// Create the model
var myModel = new ObjectStoreModel({
store: myStore,
query: {id: 'world'}
});

// Create the Tree.
var tree = new Tree({
model: myModel
});
tree.placeAt("test");
tree.startup();

myStore.add({id: 'foo', name:'Added after tree creation', type:'continent', parent: 'world'});
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css">
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">

<div class="tundra">
<div id="test"></div>
</div>

关于javascript - 将节点添加到 Dojo 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37727183/

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