如何回滚敲除验证错误?
How to rollback knockout validation errors?
我将敲除验证 2.0.3 与 entity framework 6.0 一起使用,但出现意外的验证错误。这是我的工作流程:
第 1 步:(按预期工作)使用添加对话框创建一个新实体并尝试保存新实体。显示验证错误是因为缺少某些属性。这是想要的行为。用户取消对话框,我调用 unitofwork.rollback() 撤消新实体的创建。
第 2 步:打开相同类型的现有实体的编辑对话框。尝试按原样保存它。 => 再次显示步骤 1 中的验证错误!
如何清除第 1 步后的验证错误?
如果我只执行step2,保存动作就可以了。
在一个相关的Whosebug问题中建议使用
errors.showAllMessages(false);
那没有解决我的问题。
相关问题:
Clear error on Knockout-Validation
Clearing or resetting a knockout validation validatedObservable?
Knockout Validation - How to show error messages
为了验证我使用了
validation.group(checkedEntity, { deep: true });
完整对象树还考虑了已检查实体的 entityAspect。
entityAspect 连接到 实体管理器 。该实体管理器包含实体的旧状态。
完整的循环是:
fooInstance => entityAspect => entityManager => entityGroupMap => Foo:... => _entities => 旧实体实例
所以我基本上有两个选择:
- 不要使用 { deep: true }
- 确保回滚后实体管理器不再包含旧实体:
entityManager.rejectChanges();
entityManager.clear();
我将敲除验证 2.0.3 与 entity framework 6.0 一起使用,但出现意外的验证错误。这是我的工作流程:
第 1 步:(按预期工作)使用添加对话框创建一个新实体并尝试保存新实体。显示验证错误是因为缺少某些属性。这是想要的行为。用户取消对话框,我调用 unitofwork.rollback() 撤消新实体的创建。
第 2 步:打开相同类型的现有实体的编辑对话框。尝试按原样保存它。 => 再次显示步骤 1 中的验证错误!
如何清除第 1 步后的验证错误?
如果我只执行step2,保存动作就可以了。
在一个相关的Whosebug问题中建议使用
errors.showAllMessages(false);
那没有解决我的问题。
相关问题:
Clear error on Knockout-Validation
Clearing or resetting a knockout validation validatedObservable?
Knockout Validation - How to show error messages
为了验证我使用了
validation.group(checkedEntity, { deep: true });
完整对象树还考虑了已检查实体的 entityAspect。 entityAspect 连接到 实体管理器 。该实体管理器包含实体的旧状态。
完整的循环是:
fooInstance => entityAspect => entityManager => entityGroupMap => Foo:... => _entities => 旧实体实例
所以我基本上有两个选择:
- 不要使用 { deep: true }
- 确保回滚后实体管理器不再包含旧实体:
entityManager.rejectChanges();
entityManager.clear();