Dojo - 尝试删除并添加项目到存储时出错(在ItemFileWriteStore中断言失败)

IPr*_*ory 4 javascript dojo dojo-1.6

我有商店(和显示其内容的网格),用户可以删除和添加项目,但不幸的是,删除后的一个项目无法再次添加.我发现问题是以前在店里的同一个id.

我使用Dojo 1.6.

在firebug控制台中,我得到了:

Error: assertion failed in ItemFileWriteStore
Run Code Online (Sandbox Code Playgroud)

这是关于jsFiddle的演示:http://jsfiddle.net/MBBnE/

这里代码:

dojo.require("dojo.data.ItemFileWriteStore");

dojo.addOnLoad(function() {

    var d = {
        items: [
            {
            id: 23,
            x: 2},
            ],
        identifier: "id",
    };

    var _store = new dojo.data.ItemFileWriteStore({
        data: d,
    });

    var it = null;

    _store.fetch({
        query: {
            id: "23*"
        },
        onItem: function(i) {
            it = i;
        }
    })

    _store.deleteItem(it);

    console.info(it);

    _store.newItem({id: 23, x: 3});
});
Run Code Online (Sandbox Code Playgroud)

xan*_*ong 6

希望我没有误解你的问题,但是当你想要重新添加具有相同id的另一个项目时从商店中删除项目时,你应该保存商店然后重新添加项目.保存商店将清除所有脏项并允许重用ID.

  • 看来你是对的!获得+25,欢迎来到SO! (2认同)
  • 谢谢,我一直在使用SO一段时间,没有时间做出贡献.终于有时间回馈了. (2认同)