在向dijit.Tree添加新的Tree节点时,我遇到了一个奇怪的错误。
var rawdata = [{
label: 'Date',
id: '1',
children: [{
label: 'Life',
id: '1.1'
}, {
label: 'Liberty',
id: '1.2'
}]
}, {
label: 'Some links (note: the link is <b>not</b> clickable)',
id: '2',
children: [{
id: '2.1',
label: '<a href="http://dojotoolkit.org">Dojo Toolkit</a>'
}, {
id: '2.2',
label: '<img src="http://dojofoundation.org/media/img/dojo.logo.png" alt="greatest ever" height="32px" />'
}, {
id: '2.3',
label: '<a href="http://blog.nqzero.com">my blog</a>'
}]
}];
var store = new dojo.data.ItemFileWriteStore({
data: {
identifier: 'id',
label: 'label',
items: rawdata
}
});
为了将项目添加到树中,我使用以下内容:
store.newItem({id:'3', label:"New tree node label"});
然而,这似乎只在我第一次向树中添加项目时起作用。在尝试添加第二个项目时,我收到错误:ItemFileWriteStore中的断言失败了吗?
此外,当前节点是在树的第一级添加的。我怎么能把它添加到其中一个子树中,比如说第二个id为2的树?
谢谢!
答案 0 :(得分:2)
断言错误可能是由于id值冲突造成的。添加的第二项是否与第一项不同? 如果你向商店添加一个项目,它将被添加到顶层,除非你将项目添加到其中一个子数组 - 树必须知道放置项目的位置,如果你将它添加到它假定的商店(正确) )它是一个顶级项目。如果将新项目添加为现有项目的子项,则树再次知道它应该去哪里。