使用'before'选项将物品添加到道场商店



我有一个dijit/Tree连接到dijit/Tree/ObjectStoreModel,它反过来连接到dojo/store/Observable中包装的dojo/store/Memory -基本上按照dijit/Tree文档中的示例。

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

但是,我希望能够指定在父子项中应该如何排序。例如,如果我有一个id为"parent_1"然后我添加了两个条目(比如,item_A", item_B"),它们的父属性都设置为"parent_1"然后我将以:

结束

parent_1

  • item_A

  • item_B

但是,我想把item_B放在item_A之上。

商店。Add支持第二个参数:一个属性对象,其中一个是'before'。我的理解是,当你给商店中的另一个物体设置"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总是简单地附加在末尾。有人知道怎么做吗?谢谢!

查看源代码,它看起来不像dojo/store/Memory支持before PutDirective

如果您想要这个功能,我怀疑您将不得不提交一个Dojo功能请求,或者修补/增强Dojo/store/Memory来提供您需要的功能。

相关内容

  • 没有找到相关文章

最新更新