session - Ext JS 7.3.1 经典错误 - 记录保存时 C 的状态无效
问题描述
这是一个小提琴。
要重现问题:
- 使用 Session 创建表单面板;
- 通过 viewModel 链接配置创建新记录;
- 调用save就记录不做任何修改;
我认为这个错误在 viewModel 的 linkTo 方法中:
if (Ext.isObject(create)) {
rec.set(create);
rec.commit();
rec.phantom = true;
}
也许记录必须保持沉默?
解决方案
当您创建没有设置 id 字段的记录时,它应该是 phantom true。并且脏设置为假。假设您最初设置的值是数据库中的值或记录所在的位置。如果您检查记录是否脏,并且仅在更改名称字段(脏 = true)时运行保存,则保存正常。当您设置 id 字段时,记录不再是幻影。
您应该能够调用 save 并将脏设置为 false 并且让系统什么也不做。在商店中,如果您调用同步,就会发生这种情况......它会跳过非脏记录,只对脏记录进行操作。
当幻象为真时,保存将调用代理“创建”方法。当幻象为假时,保存将调用代理的“更新”方法。如果您删除 (record.drop()) 记录将被标记为已删除,并且保存将调用代理的“销毁”方法。
推荐阅读
- git - 创建新标签后运行 github 操作
- swift - 从 SwiftUI 应用程序中更改推送通知授权
- javascript - Javascript循环:仅在最后一次迭代中插入元素
- php - 从 App\Entity\Students 到 App\Entity\Classes 的关系引用的列名“id”不存在
- python - 无法将日期字符串转换为日期时间对象
- android - @dagger.hilt.android.qualifiers.ApplicationContext android.content.Context 不能在没有@Provides-annotated 方法的情况下提供
- android-studio - 插页式广告首先显示并进入下一个活动
- r - 为使用 reactable 创建的表添加标题
- matplotlib - 如何使 barplot 中的条不从 0 开始(matplotlib)
- ruby-on-rails - 修改内存中的记录时 find 和 find_by 的区别