gpt4 book ai didi

javascript - dojo.data.objectStore.deleteItem

转载 作者:行者123 更新时间:2023-11-29 20:15:41 24 4
gpt4 key购买 nike

我有一个包裹在 dojo.data.ObjectStore 中的 dojo.store.Memory,然后我将其插入到 dataGrid 中。我想从商店中删除一个项目并更新网格。我已经尝试了所有我能想到的组合,但都没有成功。例如:

var combinedStore = new dojo.data.ObjectStore({objectStore: new dojo.store.Memory({data: combinedItems})});
combinedStore.fetch({query:{id: 'itemId'}, onComplete: function (items) {
var item = items[0];
combinedStore.deleteItem(item);
combinedGrid.setStore(combinedStore);
}});
combinedGrid.setStructure(gridLayout);

这不会抛出任何错误,但 combinedStore.objectStore.data 仍然有要删除的项目,并且网格仍然显示该项目。 (这似乎也是 combinedStore.objectStore.data 和 combinedStore.objectStore.index 之间的完全不匹配);

最佳答案

幸运的是,有一个简单的解决方案!删除已成功进行,但是,您需要在删除后保存 ObjectStore 才能提交。

将您的代码更改为如下所示:

onComplete: function (items) { 
var item = items[0];
combinedStore.deleteItem(item);
combinedStore.save();
combinedGrid.setStore(combinedStore);
}

那个小小的保存应该可以解决问题。 (请注意:保存必须发生在 deleteItem 之后 - 如果你把它放在 fetch block 之外,做异步的,它实际上发生在之前 onComplete!)

工作示例:http://pastehtml.com/view/b34z5j2bc.html (检查您的控制台以获取结果。)

关于javascript - dojo.data.objectStore.deleteItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com