我有一个商店,用户可以通过一次destroy
操作删除多个记录。
现在,其中一些记录被锁定在数据库中(因为其他人正在处理它们),因此无法删除。服务器如何告诉前端删除Id a,b,c的记录是否成功,但是Id x,y,z的记录无法删除,应该移回商店并显示在网格中?
ExtJS商店应该知道sync()
哪些记录真的被服务器端删除了,哪些不是。
答案 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
,以便前端知道删除该条目失败