我们的应用程序中有一些不能使用ng-options的下拉菜单,因为我们需要在 <options> 标签本身上设置 title 属性,而这对于ng-options是不可能的。
我们需要标题的原因是因为 IE < 9 会去掉过长的值,并且它们仅在标题中可见(在元素悬停时显示)
现在,要查看我遇到的问题,请查看以下 JS fiddle。
http://jsfiddle.net/nstuart/nF7eJ/(HTML 位)
<div ng-app="myApp" ng-controller="MyCtrl">
<select ng-model="params.value">
<option value="">Any</option>
<option ng-repeat="v in options" value="{{v.value}}" title="{{v.name}}" ng-selected="{{v.value == params.value}}">{{v.name}}</option>
</select>
<p>{{params.value}}</p>
</div>
理想情况下,选择会选择“test3”,但您可以看到它被设置为空选项。我理解这是因为 ng-model 的值不存在于ng-options中,但那是因为我没有定义一个!
关于如何让这样的东西工作的任何想法?甚至可以为 ng-options 生成的选项添加标题,以便我们可以使用它?
编辑
将小提琴更新为:http: //jsfiddle.net/nstuart/nBphn/2/,如下面的答案所述。