当某些值SHARE在字幕处开始字母时,我在输入下拉列表时使用第一个值更新我的ng模型。
<div ng-app="dropDown" ng-controller="dropDownController">
<select name="StateId" ng-model="selectedState" class="form-control" ng-change="selectedStateChanged()" ng-options="(states.Abbrev + ' - ' + states.Name) for states in states"></select>
<span>{{selectedState.Name||''}}</span>
</div>
Plnkr http://plnkr.co/edit/pLVzK18iJxrmrL9Oiw4b?p=preview
测试方案:
结果: - &#39; TX - TEXAS&#39; drowpdown上显示选项。 - $ scope.selectedState值IS {Name:&#39; TENNESSEE&#39;}
预期:
我会通过使用普通的javascript来解决这个问题,与此同时,我想知道是否有任何AngularJS解决方案。
提前致谢。
答案 0 :(得分:4)
select
我也遇到了一些问题。这就是为什么添加一个空的option
- 标签总是更安全!
<div ng-app="dropDown" ng-controller="dropDownController">
<select name="StateId" ng-model="selectedState" class="form-control" ng-change="selectedStateChanged()" ng-options="(states.Abbrev + ' - ' + states.Name) for states in states">
<option></option>
</select>
<span>{{selectedState.Name||''}}</span>
</div>
解决方案:http://plnkr.co/edit/LfS347JM6V7Rv5S6vPkL?p=preview
Angular Documentation解释了问题:
如果ngModel的viewValue与任何选项都不匹配,则控件将自动添加“未知”选项,然后在解决不匹配时将其删除。
可选地,单个硬编码元素(其值设置为空字符串)可以嵌套到元素中。然后,此元素将表示null或“未选中”选项。