Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改ng选项中的禁用标志会导致取消选中select_Javascript_Angularjs - Fatal编程技术网

Javascript 更改ng选项中的禁用标志会导致取消选中select

Javascript 更改ng选项中的禁用标志会导致取消选中select,javascript,angularjs,Javascript,Angularjs,问题的例子: 加载时,h被选中,即使其已禁用。这是好的,也是意料之中的 接下来,如果您选择了一个非禁用的值,则假设d。这很有效 但一旦单击按钮翻转禁用布尔值,模型将设置为null,选择将丢失所选内容 您甚至可以翻转布尔值,使最初选定的值不被禁用,并且该值保持不变,但如果再次翻转该值,则该值将丢失 这是预期的吗?这似乎不应该发生在我身上,因为第一个用例允许选择它。“但一旦单击按钮翻转禁用布尔值,模型将设置为null,选择将丢失所选内容。” 所选变量的计算结果为null,因为在过滤器中有禁用whe

问题的例子:

加载时,
h
被选中,即使其已禁用。这是好的,也是意料之中的

接下来,如果您选择了一个非禁用的值,则假设
d
。这很有效

但一旦单击按钮翻转
禁用
布尔值,模型将设置为
null
,选择将丢失所选内容

您甚至可以翻转布尔值,使最初选定的值不被禁用,并且该值保持不变,但如果再次翻转该值,则该值将丢失

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

“但一旦单击按钮翻转禁用布尔值,模型将设置为null,选择将丢失所选内容。”

所选
变量的计算结果为
null
,因为在过滤器中有
禁用when选项。禁用
。因此,将
disable
属性切换为
true
后,没有选择的值,其计算结果为
null
。但是您可以通过选择另一个选项来解决这个问题,例如,通过单击或编程(我认为这是更好的方法)

在禁用另一个选项后,我添加了自动选择“未禁用”选项,下面是正在工作的plunker:

或者,如果您只想在未选择任何内容的情况下显示类似“选择一个选项”的内容-下面是另一个plunker:


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