我正在使用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"
答案 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"