我在侦察兵中有4个聪明的领域。
所以说我有智能字段A,B,C,D和A是B的父节点,B是C的父节点,C是D的父节点。(逻辑上,在侦察意义上没有必要。)
如果我在C字段中输入示例值,则必须自动填写A和B字段。但如果我在A字段中输入值,则需要重置所有其他字段。
我的问题是,如果我有A:
@Override
protected void execChangedValue() {
B.resetValue();
C.resetValue();
D.resetValue();
}
如果我在B:
@Override
protected void execChangedValue() {
// get changed value
final Long A_value = A.getValue();
// reset call child fields
C.resetValue();
D.resetValue();
if (A_value == null) {
A.setValue(NewValueForA);
}
}
这将创建循环。 B将在A中设置值,A将重置B,....这不是我想要的......
Scout中有一般的方法可以解决这个问题吗?
答案 0 :(得分:0)
对于那些复杂的案例,我在this answer中介绍并解释了setValueWithoutChangedValueTrigger(..)
。你可以这样做:
getBField().setValueWithoutChangedValueTrigger(getBField().getInitValue());
getCField().setValueWithoutChangedValueTrigger(getCField().getInitValue());
getDField().setValueWithoutChangedValueTrigger(getDField().getInitValue());
依旧......