我有一个 dijit/Tree 连接到一个 dijit/Tree/ObjectStoreModel,它又连接到一个 dojo/store/Memory 包装在 dojo/store/Observable 中 - 基本上按照 dijit/tree 文档中的示例。
它工作得很好:我用一些对象预加载了商店,并且可以使用 store.add(item) 添加其他对象。数据是分层的,也可以通过在添加到商店的每个项目上设置 parent 属性来工作。
但是,我希望能够指定如何在父子项目中进行排序。例如,如果我有一个 id 为“parent_1”的项目并且我添加了两个项目(比如“item_A”、“item_B”),并且父项都设置为“parent_1”,那么我最终会得到:
父母_1
item_A
项目_B
但是,我希望将 item_B 放在 item_A 上方。
store.add 支持第二个参数:一个属性对象,其中一个是'before'。我的理解是,当您将“之前”设置为商店中的另一个对象时,它应该放在它之前。所以,当我添加 item_B 时,我使用:
var item_A = store.get("item_A");
var item_B = { id: "item_B", parent: "parent_1", ... };
store.add(item_B, { before: item_A });
但是,它不起作用。item_B 总是简单地附加在末尾。有谁知道如何使这项工作?谢谢!