【发布时间】:2013-06-26 11:10:58
【问题描述】:
我正在使用 Knockout Validation 在 Durandal/KnockoutJS 应用程序中验证我的模型。它工作正常,但我遇到了我不知道如何处理的情况。用户输入的内容之一是“讲师”列表,他们可以输入任意数量的讲师。每个讲师都有一个“教学百分比”值。所有教学百分比的总和必须达到 100%。
我不确定如何为此设置验证,因为当我为“Instructors”定义模型对象时,我无法引用任意数量的其他 Instructor 对象。
我能想到的最佳选择是放置一个 viewmodel 计算 observable,它是所有教师教学百分比的总和,并验证该值为 100。
我错过了什么吗?这是解决这种情况的明智方法吗?从广义上讲,这个问题适用于您有多个模型对象的任何情况,并且它们的一个属性的有效性相互依赖于其他对象的属性。
例如,ObjA.Heading 如果是正数则有效,and ObjB.Heading 也是正数;反之亦然(ObjB.Heading 为正数时有效,且 ObjA.Heading 也为正数)。
感谢您就如何处理这种情况提供任何意见。
谢谢!
【问题讨论】:
-
这正是我第一次运行时的处理方式。如果您考虑显示,您可能会有一个“总计”行,它将所有内容相加。您将验证进行计算的“总计”视图模型,而不是其他视图模型的集合。听起来对我来说是一种有效的方法!
标签: knockout.js knockout-2.0 durandal knockout-validation