我想在满足某些条件时出现一个按钮,但我无法理解逻辑。
说出逻辑:
如果表单GenericFormFields有效并且: 如果勾选了系统的复选框,系统的表单有效则显示按钮,否则不显示。并非所有系统都需要选择。
我面临的问题是,当不需要系统时,我不知道如果不需要系统C而不知道如何排除该系统,系统A&检查B,我希望表达式评估为真:
ng-show="GenericFormFields.$valid && (
(sysCheckBox.SystemSelected.a && SystemFormA.$valid) ||
(sysCheckBox.SystemSelected.b && SystemFormB.$valid) ||
(sysCheckBox.SystemSelected.c && SystemFormC.$valid)
)
我知道上面的内容不会起作用,因为当选择一个系统并且有效时它会评估为真。并且以同样的方式,如果仅选择两个系统,则以下不会评估为真,因为&&在评估为true之前,运算符将希望检查所有系统并使其有效:
ng-show="GenericFormFields.$valid && (
(sysCheckBox.SystemSelected.a && SystemFormA.$valid) &&
(sysCheckBox.SystemSelected.b && SystemFormB.$valid) &&
(sysCheckBox.SystemSelected.c && SystemFormC.$valid)
)
对此的帮助将非常感激。
答案 0 :(得分:2)
GenericFormFields。$ valid&&
(!sysCheckBox.SystemSelected.a || SystemFormA。$ valid)&& (!sysCheckBox.SystemSelected.b || SystemFormB。$ valid)&& (!sysCheckBox.SystemSelected.b || SystemFormC。$ valid)
答案 1 :(得分:0)
第一个应该有效,因为当至少一个条件为真时它将是真的