在选择时将选项的描述分配给变量

时间:2019-12-06 15:05:07

标签: angularjs

我正在使用ng-options填充我的选择。我将值指定为该字段的ID,但是我还需要指定选项的说明。

不确定如何执行此操作,之后再遍历我的列表以查找匹配的ID。

因此,我正在将用户的ID分配给vm.model.user,但是我怎么可能将名称分配给另一个变量,并且仍然使它通用。关键部分是通用的,因为描述名称可能有所不同(有时是描述或userDescription等,我无法控制)。

$scope.users = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Adam' },
  { id: 3, name: 'Chloe' },
  { id: 4, name: 'Chris' }
];
<select ng-model="vm.model.user" ng-options="user.id as user.name for user in users | orderBy: 'name'"></select>

我尝试在ng-change上执行此操作,但似乎不知道user,只有ng-options知道。

ng-change="vm.model.userDescription = user.name"

2 个答案:

答案 0 :(得分:0)

一种解决方案是将ng-model设置为所选的用户对象,因此vm.model.user将同时具有id和name:

<select ng-model="vm.model.user" ng-options="user as user.name for user in vm.users | orderBy: 'name'"></select>

查看演示:DEMO

答案 1 :(得分:0)

我找到了一个有趣的答案 https://stackoverflow.com/a/28323031/9559251

基本上我们可以做

ng-change="vm.model.userDescription = (users | filter: {id: vm.model.user})[0].name"