如何使用名称和值(数字 ID)填充下拉列表?
How do I populate dropdown with names, and values (numeric ids)?
如何正确地将我的下拉列表绑定到控制器变量,而不是使用我的下拉数组的 id 属性 而不是要赋值的值,仍然使用名称 [= 显示下拉内容28=] 我的最终用户数组 select?
AngularJS 工作下拉模板,但没有 ID/Value 属性
<ui-select ng-model="ctrl.risk.owner" theme="select2"
ng-disabled="ctrl.disabled" style="max-width: 150px"
title="Choose a person">
<ui-select-match placeholder="Select/Search User">
{{$select.selected.name}}
</ui-select-match>
<ui-select-choices repeat="user in ctrl.users | propsFilter: {name: $select.search}">
<div value="user.id" ng-bind-html="user.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
设置数组(这是我需要 user.id 用于 select-ui 下拉库的地方)
$http.get('api/users').then(function(response){
if (response.data.Succeeded){
for (var key = 0; key < response.data.Result.length; key++){
user = response.data.Result[key];
$scope.ctrl.users[user.id] = {name: user.name};
}
$scope.ctrl.userDone = true;
return response.data.Result;
}
else{
$scope.ctrl.msg += "<br />"+
$sce.trustAsHtml(response.data);
}
});
值HTML属性没有被ui-select使用,所以没有意义。您的 selection 由您在 repeat 语句中指定的内容指示。
此语句表示用户将用于绑定:
<ui-select-choices repeat="user in ctrl.users | propsFilter: {name: $select.search}">
此语句表示用户id将用于绑定:
<ui-select-choices repeat="user.id as (id, user) in ctrl.users | propsFilter: {name: $select.search}">
一般来说,ng-model 对象会得到你指定的绑定。我认为在 ctrl.risk.owner
中获取用户没有问题,但您必须在代码中期望它,然后可以根据需要获取 user.id。我认为您正在尝试访问此行中的 selected id:
$scope.ctrl.users[user.id] = {name: user.name};
如果那是真的,您应该只查看 selected 用户的 ctrl.risk.owner
。
使用 ui-select 提供的示例。我认为这个最符合您的尝试:http://plnkr.co/edit/?p=preview
如何正确地将我的下拉列表绑定到控制器变量,而不是使用我的下拉数组的 id 属性 而不是要赋值的值,仍然使用名称 [= 显示下拉内容28=] 我的最终用户数组 select?
AngularJS 工作下拉模板,但没有 ID/Value 属性
<ui-select ng-model="ctrl.risk.owner" theme="select2"
ng-disabled="ctrl.disabled" style="max-width: 150px"
title="Choose a person">
<ui-select-match placeholder="Select/Search User">
{{$select.selected.name}}
</ui-select-match>
<ui-select-choices repeat="user in ctrl.users | propsFilter: {name: $select.search}">
<div value="user.id" ng-bind-html="user.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
设置数组(这是我需要 user.id 用于 select-ui 下拉库的地方)
$http.get('api/users').then(function(response){
if (response.data.Succeeded){
for (var key = 0; key < response.data.Result.length; key++){
user = response.data.Result[key];
$scope.ctrl.users[user.id] = {name: user.name};
}
$scope.ctrl.userDone = true;
return response.data.Result;
}
else{
$scope.ctrl.msg += "<br />"+
$sce.trustAsHtml(response.data);
}
});
值HTML属性没有被ui-select使用,所以没有意义。您的 selection 由您在 repeat 语句中指定的内容指示。
此语句表示用户将用于绑定:
<ui-select-choices repeat="user in ctrl.users | propsFilter: {name: $select.search}">
此语句表示用户id将用于绑定:
<ui-select-choices repeat="user.id as (id, user) in ctrl.users | propsFilter: {name: $select.search}">
一般来说,ng-model 对象会得到你指定的绑定。我认为在 ctrl.risk.owner
中获取用户没有问题,但您必须在代码中期望它,然后可以根据需要获取 user.id。我认为您正在尝试访问此行中的 selected id:
$scope.ctrl.users[user.id] = {name: user.name};
如果那是真的,您应该只查看 selected 用户的 ctrl.risk.owner
。
使用 ui-select 提供的示例。我认为这个最符合您的尝试:http://plnkr.co/edit/?p=preview