AngularJS:在不修改ng模型的情况下获取选择标签
AngularJS : get select label without modifying ng-model
>我目前遇到了一个看起来很简单的问题:
控制器:
$scope.fruits = [{
name: 'AP',
label: 'Apple'
}, {
name: 'BA',
label: 'Bananas'
}];
网页代码 :
<select
ng-model="meal.fruit"
ng-options="fruit.name as fruit.label for fruit in fruits">
</select>
<p>Fruit : {{meal.fruit}}</p>
问题是,这显示
Fruit : BA
而不是
Fruit : Bananas
我无法将ng-option修改为"fruit as fruit.label",因为我需要我的模型"meal.fruit"是"AP"或"BA"(因为它是由Jackson反序列化的java枚举,并且它需要Enum值)。
JSFiddle
总之,我需要meal.fruit是"BA",我还希望能够在其他地方显示所选值"香蕉"。
我能做什么?
编辑:
对我有用的解决方案是由马克西姆·舒斯汀找到的,(非常感谢!
我修改了我的代码,如下所示:
http://jsfiddle.net/2qfSB/77/
然后我修改了我的提交方法以添加以下内容:
$scope.meal.fruit = $scope.meal.fruit.name;
只需更改ng-options
:
ng-options="fruit.label as fruit.label for fruit in fruits">
固定演示:小提琴
作为旁注
您可以使用ng-init
将默认的第一个元素设置为避免空组合:
<select
ng-model="meal.fruit"
ng-options="fruit.label as fruit.label for fruit in fruits"
ng-init="meal.fruit = fruits[0].label"
>
演示:小提琴
相关文章:
- 如何在不需要单击按钮的情况下获取选项的值
- 如何在没有回调的情况下获取有关元素的信息
- 在不使用sort()的情况下获取HTML LI元素的副本
- Javascript如何在不使用画布的情况下获取鼠标位置
- Javascript在没有jQuery的情况下获取X父节点
- Rails/JS-在不刷新页面的情况下获取变量
- jQuery在不刷新页面的情况下获取每个A标记的值
- 在没有jquery的情况下获取iframe中的特定内容
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 角度 - 在不使用 ng-repeat的情况下获取数据长度
- AngularJS:在不修改ng模型的情况下获取选择标签
- 我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 如何在没有元素的情况下获取文件引用对象
- 如何在没有jQuery的情况下获取事件目标
- JavaScript:在没有画布的情况下获取 ImageData
- 在没有解析 JSON 的情况下获取高图表数据
- 如何在没有图像的情况下获取链接