双向绑定到单选组内的单选按钮 -> Max Call Stack
Bi-Directional binding to radio button within a radio group -> Max Call Stack
如果我尝试在 属性 和单选按钮之间进行双向绑定,我会收到 Uncaught RangeError: Maximum call stack size exceeded
异常。
我创建了一个游乐场示例:tinyurl。com/hfl9gy8
如果我尝试通过 toggle
按钮切换 属性,我会遇到异常。这只发生在 true
到 false
之间。 false
到 true
完美运行。
这是错误还是我遗漏了什么?
如果您有多个 qx.ui.form.RadioButtons
并将它们添加到具有默认属性的 qx.ui.form.RadioGroup
,则组管理器会强制要求仅选择一个单选组项目。
因此,如果您只从组中选择一个单选按钮,在您的 playground 中采样标记为红色的单选按钮,并将其设置为 false,则组管理器不允许这样做,因为那样就没有选择 (既不是红色也不是绿色)。取消选择红色单选按钮并不意味着会自动选择绿色单选按钮。
仅将一个布尔值 (false/true) 绑定到单选组中的一个单选按钮在这里不起作用。
您可以将 qx.ui.form.RadioGroup
的 属性 allowEmptySelection
设置为 true
,这将使您的 playground 示例工作,但只能通过取消选择并选择红色按钮, 在单选组中根本没有选择任何按钮。
结论:广播组不是你可以"toggle"。
如果我尝试在 属性 和单选按钮之间进行双向绑定,我会收到 Uncaught RangeError: Maximum call stack size exceeded
异常。
我创建了一个游乐场示例:tinyurl。com/hfl9gy8
如果我尝试通过 toggle
按钮切换 属性,我会遇到异常。这只发生在 true
到 false
之间。 false
到 true
完美运行。
这是错误还是我遗漏了什么?
如果您有多个 qx.ui.form.RadioButtons
并将它们添加到具有默认属性的 qx.ui.form.RadioGroup
,则组管理器会强制要求仅选择一个单选组项目。
因此,如果您只从组中选择一个单选按钮,在您的 playground 中采样标记为红色的单选按钮,并将其设置为 false,则组管理器不允许这样做,因为那样就没有选择 (既不是红色也不是绿色)。取消选择红色单选按钮并不意味着会自动选择绿色单选按钮。
仅将一个布尔值 (false/true) 绑定到单选组中的一个单选按钮在这里不起作用。
您可以将 qx.ui.form.RadioGroup
的 属性 allowEmptySelection
设置为 true
,这将使您的 playground 示例工作,但只能通过取消选择并选择红色按钮, 在单选组中根本没有选择任何按钮。
结论:广播组不是你可以"toggle"。