存储同步:许多删除,有些删失

时间:2017-04-27 08:48:18

标签: extjs

我有一个商店,用户可以通过一次destroy操作删除多个记录。

现在,其中一些记录被锁定在数据库中(因为其他人正在处理它们),因此无法删除。服务器如何告诉前端删除Id a,b,c的记录是否成功,但是Id x,y,z的记录无法删除,应该移回商店并显示在网格中?

ExtJS商店应该知道sync()哪些记录真的被服务器端删除了,哪些不是。

1 个答案:

答案 0 :(得分:0)

我认为没有直接解决这个问题的办法。我选择了以下解决方法:

记录现在有一个" IsDeleted"默认情况下设置为false的标志:

fields:[{
    ...
},{
    name: 'IsDeleted'
    type: 'bool',
    defaultValue: false

商店有一个过滤器,用于隐藏标志设置为true的条目:

filters:[{
    property:'IsDeleted',
    value:false
}]

当用户选择删除时,我不会从商店中remove条目,而是在这些条目上将IsDeleted标记设置为true。过滤器使用户认为该条目已被删除。

当商店同步时,它执行update操作,而不执行destroy操作。因此,API的更新端点必须删除IsDeleted作为true传输的所有条目。如果它无法从数据库中删除条目,则返回给客户端的相应json会将IsDeleted设置为false,以便前端知道删除该条目失败