商店同步:许多删除,有些失败



我有一个商店,用户可以在其中使用单个destroy操作删除多个记录。

现在,其中一些记录被锁定在数据库中(因为其他人正在处理它们(,因此无法删除。服务器如何告诉前端,使用ID A,B,C的记录删除成功,但是用ID X,Y,Z的记录无法删除,应该将其移回商店并显示在网格中?

extjs商店应在sync()之后知道哪些记录确实被删除了服务器端,哪个是。

我认为对此问题没有直接的解决方案。我选择了以下解决方法:

记录现在具有" ISDEATED"标志,该标志默认设置为false

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

该商店的过滤器隐藏了将标志设置为true的条目:

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

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

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