Javascript 将下拉框选择绑定到另一个对象的Id
我有一个对象列表Javascript 将下拉框选择绑定到另一个对象的Id,javascript,angularjs,Javascript,Angularjs,我有一个对象列表admins,其中包含Username和Id属性。在下拉列表中,我只显示用户名属性。如果用户现在选择了管理员,我想将Id(而不是用户名)存储到另一个对象设置: 以下是我迄今为止所尝试的: <select class="input-large" ng-model="vm.settings.selectedAdminId"> <option ng-repeat="admin in vm.admins | orderBy:'Username'">{{ad
admins
,其中包含Username
和Id
属性。在下拉列表中
,我只显示用户名
属性。如果用户现在选择了管理员,我想将Id
(而不是用户名)存储到另一个对象设置
:
以下是我迄今为止所尝试的:
<select class="input-large" ng-model="vm.settings.selectedAdminId">
<option ng-repeat="admin in vm.admins | orderBy:'Username'">{{admin.Username}}</option>
</select>
{{admin.Username}
我可以选择用户名,但我不知道如何将所选的
管理员Id
存储到设置中。selectedAdminId
您可以这样做
<select class="input-large" ng-model="vm.settings.selectedAdminId">
<option ng-repeat="admin in vm.admins | orderBy:'Username'" value="{{admin.Id}}">{{admin.Username}}</option>
</select>
{{admin.Username}
首先使用。那就是
<select class="input-large"
ng-model="vm.settings.selectedAdminId"
ng-options="admin.Id as admin.Username for admin in vm.admins | orderBy:'Username'">
</select>
选定:{{vm.settings.selectedAdminId}}
哇,太简单了。谢谢!如果有一个可能值的列表,我需要存储所选值,那么这就是方法吗?如果对象本身没有id,也可以使用$index。避免使用ngRepeat渲染选择选项。您不能将ngModel绑定到对象(例如,绑定到整个admin
对象,而不是Id
),ngRepeat为每个选项标记创建子范围,这是冗余的,并且具有性能影响。最后,如果您尝试this.settings.selectedAdminId=123
,您将无法设置所选的管理员-它将无法设置所选的选项。@dfsq感谢您的提示。@dfsq绝对+1这会更好。我是个新手,每天都给人留下深刻印象:-)。我将在4分钟内接受答案。这不仅更好,而且应该如此,因为使用ngRepeat可能会遇到某些问题。看这个。