使用Angularjs为下拉列表设置不同的文本/值
Set different text/value for dropdown with Angularjs
我想用AngularJS为下拉列表设置不同的文本/值。目前,通过使用以下语法,文本和值都是相同的:
<select name="flightNum" class="form-control" ng-model="model.flight"
ng-options="v.Value as v.Text for v in flights" required></select>
我尝试过这种方法:
<select name="flightNum" class="form-control" ng-model="model.flight"
ng-options="v.Value as v.Text for v in flights" required>
<option ng-repeat="v in flights" value="{{v.Value}}"> {{v.Text}}</option>
</select>
但我得到了相同的文本/值组合。我需要更改什么才能使用AngularJS?
只要您的$scope.flights设置正确,您显示的第一个语法应该可以工作。我已经设置了一个plunker来在http://plnkr.co/edit/PIXZZO81aQKj4kmngoXy?p=preview
它具有以下$scope.flights的数据结构:
$scope.flights = [{
value: 'val1',
text: 'text1'
}, {
value: 'val2',
text: 'text2'
}, {
value: 'val3',
text: 'text3 '
}]
然后,select基本上可以按原样编写(我在意外情况下使用了小写值和文本,但只需确保它在控制器和html之间匹配):
<select name="flightNum" class="form-control" ng-model="model.flight" ng-options="v.value as v.text for v in flights" required></select>
使用此设置,下拉列表中会填充"文本"字段中包含的值,但选择某些内容会将"值"设置为model.flight变量。你可以在上面提到的Plunker中看到这一点。
这是你想要的行为吗?如果没有,发生了什么不同/出乎意料的事情?
您需要在ng选项中添加track
<select name="flightNum" class="form-control" ng-model="model.flight"
ng-options="v.Value as v.Text for v in flights track by v.Value" required>
</select>
就是这样。
相关文章:
- 使用angularjs验证文本框中的电子邮件
- 根据输入文本按元素排序,AngularJS
- 在AngularJS Dropdownlost中设置默认文本选项
- 如何在angularjs中更改文本框类,同时键入和检查条件
- angularjs 使用什么事件从文本输入中获取值
- 在AngularJS中过滤-html标签中的文本
- angularjs文本区域-如何使其与angularjs下拉列表中的选定值保持同步
- 检测angularjs中的输入文本长度
- 从 AngularJS 将文本插入 HTML
- 在 AngularJs 中触发文本框的复选框
- 如何使用 Angularjs 使流式处理更改输入中输入的文本
- AngularJS - 从字符串数组中连续更改文本
- AngularJS 在文本区域中渲染 HTML
- Angularjs:如何捕获
标签中的文本并在我的控制器中使用它 - AngularJS不断关注文本输入
- 如何做name=“;技能[]”;在angularjs中输入类型文本
- Angularjs观察用户在输入文本中键入逗号的情况
- 将表中的值传递给输入文本Angularjs
- 如何使用angularjs在剑道网格过滤器文本框中应用电话号码掩码
- 如何更改每个附加文本Angularjs