我将保留下面的问题,但如果其他人有这个问题,那么问题是剑道中的一个错误,并且已在最新版本中得到修复。所以解决方案是更新到最新的剑道版本。
我一直在尝试找到一种在 kendo-ui 树视图中列出所有节点的好方法,并设法将这种方法组合在一起。首先我定义了数据源,为了简单起见让我们说:
data = [
{text:element1, items:[
{text:element2},
{text:element3}]},
{text:element4}]
然后,我将数据源设置为 observableHierarchy:
my_treeview.setDataSource(kendo.observableHierarchy(data));
当我想访问节点列表时,我可以得到一个 JSON 对象:
my_treeview.dataSource.data().toJSON();
这很好用;它会生成一个正确、格式正确的 JSON 对象。如果我在上面调用 JSON.stringify,我会得到:
[{"text":"element1","items":[{"text":"element2","items":[]},{"text":"element3","items":[]}]},{"text":"element4","items":[]}]
但是,当我在树上启用拖放并将元素拖到不同的父级时,它会从 json 输出中消失。比如我把element3拖到element4里面,返回的json对象是:
[{"text":"element1","items":[{"text":"element2","items":[]}]},{"text":"element4","items":[]}]
相当于:
data = [
{text:element1, items:[
{text:element2}]}
{text:element4}]
但是,表格的显示仍然正确,元素 3 似乎是 element4 的子元素。所以我的问题是,如何让数据源通过拖放正确更新?