回滚 ngOptions select 到 unselected 状态

Roll back ngOptions select to unselected state

如果模型值与任何选项值都不匹配,

ngOpions 会创建一个空白选项,例如下面的选项 html:

<option value="?" selected="selected"></option>

完成 selection 后,AngularJS 从 select html.

中删除第一个空选项 html

我有一个用例,我想将 html select 的状态回滚到 AngularJS 删除的未 selected 选项。我尝试了 ngModel 方法,例如 $setPristine()$rollbackViewValue()$setUntouched()。但是 none 这些方法将 select 的状态返回到具有空选项的初始状态。

是否可以真正回滚 AngularJS select 元素以在 selection 生成后具有空选项?

ngOptions (line 473 in ngOptions.js ) 的代码表明只有单select 可以得到它,并且 writeValue 函数(当 ngModel 更改)必须使用 null 值调用(不是 undefined,因为使用 ===。)

因此您可以尝试将模型变量设置为 null

如果这不起作用,我想就正确的解决方案而言,您可能不走运,并且可能需要重新呈现整个指令。您可以创建一个非常简单的指令来执行此操作,类似于此答案中的建议: