44

我有一组带有用户信息的对象。

"Id": "1",
"Firstname": "ABCDEF",
"Lastname": "GHIJK",
"Middlename": ""

在我的选择选项中,我想显示两个字段 - Firstname Lastname。我不知道该怎么做以及如何将其绑定到ng-model.

4

5 回答 5

103

你可以试试这个:

<select 
  name="users" 
  ng-model="selectedUser" 
  ng-options="user.Id as user.Firstname + ' ' + user.Lastname for user in users">
</select>

文档中的更多信息:https ://docs.angularjs.org/api/ng/directive/select

于 2012-11-28T10:12:56.683 回答
14

考虑到你的数组对象的格式是这样的。

$scope.userInfo = [
                    {"Id": "1", "Firstname": "ACDEF", "Lastname": "GHIJK", "Middlename": ""},
                    {"Id": "2", "Firstname": "BADEF", "Lastname": "HIGJK", "Middlename": ""},
                    {"Id": "3", "Firstname": "CDBEF", "Lastname": "IIHJK", "Middlename": ""},
                ]

您可以像这样显示两个字段并将其绑定到模型,如下所示。

<select ng-model="userInfo" ng-options="s.Firstname +' '+ s.Lastname for s in userInfo" class="span2"> </select> 
于 2012-11-28T10:45:35.670 回答
3

只是一个额外的更新,

我必须显示用括号括起来的姓氏,所以这就是我修改答案并让它工作的方式。

<select 
   name="users" 
   ng-model="selectedUser" 
   ng-options="user.Id as user.Firstname + ' (' + user.Lastname + ') ' for user in users">
</select>
于 2016-08-29T10:02:20.070 回答
1

Theres 始终处于非ng-options场景中,您可以在其中绑定ng-repeat项目中的两个参数:

  <select name="user" ng-model="vm.asignedUser">
    <option value="">Select user</option> 
    <option value="{{ {'name':user.name, 'id': user.id} }}" ng-repeat="user in vm.users">
      {{ user.nombreLargo }}
    </option>
  </select>
于 2018-02-09T14:00:59.273 回答
0

这对我有用:

<select ng-model="color" ng-options="(c.name+' '+c.shade) for c in colors"></select>

来源:https ://groups.google.com/d/msg/angular/ljJd5x1Tgrk/bZuVWCA1hO4J

于 2018-08-23T19:39:01.713 回答