ng模型从下拉菜单中得到错误的值
ng-model is getting wrong value from dropdown
我的ng-model在输入下拉框时更新了第一个值,当一些值在标题中共享开头字母时。
<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
测试场景:
- 单击表单的任何部分。
- 点击Tab键聚焦下拉菜单。
- 开始输入'TX'
结果:-下拉菜单中显示"TX - TEXAS"选项。——美元范围。选择的状态值是{Name:'TENNESSEE'}
预期:- 'TX - TEXAS'选项显示在下拉菜单中。
- 美元范围。selectedState值应该是{Name:'TEXAS'}
我将使用纯javascript来解决这个问题,同时,我想知道是否有任何AngularJS解决方案。
我在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文档解释了这个问题:
如果ngModel的viewValue不匹配任何选项,那么控件将自动添加一个"未知";选项,然后在解决不匹配时将其删除。
可选地,单个硬编码元素,其值设置为空字符串,可以嵌套到元素中。然后,该元素将表示null或"未选定"。选择。
相关文章:
- sailsjs在创建两个模型时的错误处理
- 在模型上生成自定义主干错误.保存成功
- 使用Backbone在模型更改时渲染表单会导致表单UI错误
- 保存模型返回错误
- Ember.js:路由返回多个模型,包括一个promise,给出错误
- 尝试从 Jasmine 访问主干模型时出现参考错误
- Durandal:在找不到视图/视图模型时处理 RequireJS 错误
- angularJS + 猫鼬: 类型错误: 无法读取未定义的属性“模型”
- 挖空视图模型绑定未定义错误
- 错误绑定引导日期时间选取器到模型角度
- 无法修复猫鼬覆盖模型错误
- 类型错误:“未定义”不是构造函数 - 主干模型
- JavascriptMVC - 保存模型时的验证错误
- 反应本机数据库模型未捕获错误
- 嵌套视图模型结构导致 ko.computing 错误
- Backbone.js:如何在处理模型属性时捕捉拼写错误
- ThreeJS中用*.obj文件加载的模型着色错误
- 无法显示来自mvc模型的验证错误消息
- Magento客户模型重写导致看似无关的JSON解析错误
- 在Ember ErrorRoute中访问错误模型