使用 Breeze 处理以下场景的验证的推荐方法是什么?
场景:我有一个带有
startDate
,endDate
和useDate
字段的实体。如果useDate
是真的,那么我想验证startDate
并且endDate
是有效日期和endDate
>startDate
。
Breeze 文档中建议的方法是创建一个自定义验证器并将其注册到实体上。validateEntity()
我在这种方法中看到的问题是,每次这三个属性之一发生更改时,我都需要手动调用,以便将验证错误添加到实体的错误集合中。在单个属性上添加自定义验证器的另一种推荐方法不提供对实体的访问(仅提供当前属性值),因此这也不是一个很好的选择。
我可以订阅实体上的每个 Knockout 属性更改事件,然后调用validateEntity()
,但这似乎很笨拙。
有没有办法将自定义实体级验证器添加到实体,但将其与一个或多个属性相关联,以便当相关属性之一更改时,调用实体级验证器?Breeze 似乎在这里缺少一个常见的验证用例场景,但我可能遗漏了一些东西。
谢谢,理查德