使用ng-options在select中显示未列出的值

时间:2015-06-23 13:31:34

标签: angularjs

我通过<select>填充了可接受值的ng-options元素,并绑定到ng-model的模型。模型可能设置为不可接受的值。 (它曾经是可以接受但不再是。)在这种情况下,AngularJS呈现<select>就像它选择了一个空项一样。

有没有办法让它呈现所选的值,即使它没有在ng-options中列出?我知道我可以在<option>内放置默认<select>。它比显示一个空项更好,但它是一个静态字符串。我希望显示无效的

1 个答案:

答案 0 :(得分:1)

有趣的问题。我认为你可以通过结合使用ngInit指令来设置初始值(它可以从允许的选项列表中删除)和ngShow一旦选择了有效选项就隐藏它。

这样的事情:

<select 
    ng-init="preselected = selected"
    ng-change="preselected = null"
    ng-model="selected" 
    ng-options="item.id as item.name for item in items">
    <option value="" ng-show="preselected">{{preselected}}</option>
</select>

演示: http://plnkr.co/edit/lUTR0pHDPecU0OUUwjzt?p=preview