【发布时间】:2016-12-01 14:51:28
【问题描述】:
我希望在满足某些条件时出现一个按钮,但我无法理解逻辑。
说明逻辑:
如果 GenericFormFields 表单有效并且: 如果选中了系统的复选框并且系统的表单有效,则显示按钮,否则不显示。并非所有系统都需要选择。
我面临的问题是,当不需要系统时,我不知道如何从评估中排除该系统,如果不需要系统 C 并且检查了系统 A 和 B,我想要表达式评估为真:
ng-show="GenericFormFields.$valid && (
(sysCheckBox.SystemSelected.a && SystemFormA.$valid) ||
(sysCheckBox.SystemSelected.b && SystemFormB.$valid) ||
(sysCheckBox.SystemSelected.c && SystemFormC.$valid)
)
我知道上述方法行不通,因为当仅选择一个系统且有效时,它将评估为 true。同样,如果只选择了两个系统,则以下内容不会评估为 true,因为 && 运算符会希望在评估为 true 之前检查所有系统并使其有效:
ng-show="GenericFormFields.$valid && (
(sysCheckBox.SystemSelected.a && SystemFormA.$valid) &&
(sysCheckBox.SystemSelected.b && SystemFormB.$valid) &&
(sysCheckBox.SystemSelected.c && SystemFormC.$valid)
)
我们将不胜感激。
【问题讨论】:
-
如果我正确理解了您的问题,是否有一些有条件需要的复选框?您能否发布表单的相关部分?
-
不...复选框始终存在-当单击复选框并且其相关表单有效时...然后显示一个按钮...因此,如果选中复选框 a 和 b 并且它们的表单是有效的,然后显示按钮....我遇到的问题是复选框 c 坐在那里,因为它没有被检查(因此是错误的)它使整个语句评估为错误