回滚ngOptions选择未选择状态

时间:2015-08-16 16:41:35

标签: angularjs angularjs-ng-options

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

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

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

选择完成后,AngularJS会从select html中删除第一个空选项html。

我有一个用例,我希望将html select的状态回滚到AngularJS删除的未选择的选项。我尝试了ngModel$setPristine()$rollbackViewValue()$setUntouched()方法。但是这些方法中没有一个使用空选项将选择状态恢复到初始状态。

是否可以在选择后真正回滚AngularJS select元素以获得空选项?

1 个答案:

答案 0 :(得分:2)

ngOptionsline 473 in ngOptions.js)的代码表明只有单一选择才能获得它,而writeValue函数(在ngModel更改时调用)必须使用null值进行调用(不是undefined,因为使用了===。)

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

如果这不起作用,我希望你可能会因为正确的解决方案而失去运气,并且可能需要重新渲染整个指令。您可以创建一个非常简单的指令来执行此操作,类似于此答案中建议的内容:https://stackoverflow.com/a/22133080/624590