在ng-options中更改禁用标志会导致select被取消选中

时间:2017-08-14 21:22:23

标签: javascript angularjs

问题示例:

https://embed.plnkr.co/5MSJB9E7AMNDF5oZQJRR/

加载后,即使已禁用h,也会选中d。这很好,期待。

接下来,如果您选择了非禁用值,请说disable。这样可行。

但是一旦你点击按钮翻转null布尔值,模型就会被设置为writeStream.foreach而选择会丢失所选的内容。

你甚至可以将最初选择的值的布尔值翻转为不被禁用,值保持不变,但是再次翻转它就会丢失。

这是预期的吗?这似乎不应该发生在我身上,因为第一个用例允许它被选中。

2 个答案:

答案 0 :(得分:0)

"但是一旦你点击按钮来翻转禁用布尔值,模型就会被设置为null,并且选择会丢失所选的内容。"

您的JFrame变量评估为selected,因为在过滤条件中您有null。因此,在将disable when option.disable属性切换为disable后,没有选定的值,并且评估为true。但是你可以通过选择另一个选项,例如点击,或者以编程方式(我认为这将是更好的方式)来解决这个问题。

我在禁用另一个选项后添加了自动选择非禁用选项,这里是工作的plunker:

https://plnkr.co/edit/hr7aM1WXKlgRaEm8qwit?p=preview

或者,如果您只想显示"选择一个选项"当没有选择任何东西时 - 这是另一个选择:

https://plnkr.co/edit/vttB1U5QTBts3O8clQfG?p=preview

答案 1 :(得分:0)

我在Angular github问题跟踪器中发布了相同的问题,发现这种行为是设计的。对我来说,这已经足够好了,我们会想出另一种方法来做到这一点。