Dojo 使用';在'之前;选项

Dojo 使用';在'之前;选项,dojo,dijit.tree,Dojo,Dijit.tree,我有一个dijit/Tree连接到一个dijit/Tree/ObjectStoreModel,这个dijit/Tree/ObjectStoreModel又连接到一个dojo/store/Memory,这个dojo/store/Observable包装在dojo/store/Observable中——基本上与dijit/Tree文档中的示例相同 它工作得很好:我用一些对象预加载存储,并可以使用store.add(item)添加其他对象。数据是分层的,并且通过设置添加到存储的每个项目的父属性也可以工

我有一个dijit/Tree连接到一个dijit/Tree/ObjectStoreModel,这个dijit/Tree/ObjectStoreModel又连接到一个dojo/store/Memory,这个dojo/store/Observable包装在dojo/store/Observable中——基本上与dijit/Tree文档中的示例相同

它工作得很好:我用一些对象预加载存储,并可以使用store.add(item)添加其他对象。数据是分层的,并且通过设置添加到存储的每个项目的父属性也可以工作

但是,我希望能够指定如何在父项中对子项进行排序。e、 g.如果我有一个id为“parent_1”的项目,并且我添加了两个项目(例如,“item_A”,“item_B”),并且父项都设置为“parent_1”,那么我将得到:

家长1

  • 项目A

  • 项目B

但是,我希望将项目_B置于项目_A之上

store.add支持第二个参数:属性的对象,其中一个是“before”。我的理解是,当您将“before”设置为商店中的另一个对象时,它应该放在它之前。因此,当我添加项目_B时,我使用:

var item_A = store.get("item_A");
var item_B = { id: "item_B", parent: "parent_1", ... };
store.add(item_B, { before: item_A });
但是,它不起作用。项目_B总是简单地附加在末尾。有人知道怎么做吗?谢谢

查看,dojo/store/Memory似乎不支持
before
put指令


如果您需要此功能,我怀疑您必须提交Dojo功能请求,或修补/扩充Dojo/store/Memory以提供所需的功能。

感谢您的回答,特别是链接到源代码。我以前从未想过要阅读源代码(我刚刚在dojo站点上使用了docs/api参考,并进行了大量的尝试和错误),但这看起来非常有用!你是怎么处理的?我试着做同样的事情。你能分享你的经验吗?很抱歉,我没有找到一个方法来做这件事。好的。谢谢根据此票据提交的修补程序似乎也不起作用-。