[英]Searching in angular.js using id
我有两个json:
all_users
"all_users":
{
"4":{
"user_id":4,
"user_name":"Miranda"
},
"7":{
"user_id":7,
"user_name":"seconduser"
}
和tickets
"tickets":
[{
"ticket_id" : 12,
"created_by" : 7,
"assigned_to": 6
}]
现在,从json tickets
,我需要搜索谁创建了票证,即created_by
。 但是,由于这是id,所以我无法直接使用name搜索它。 经过研究,我实现了这一点:
<input id="created-by-input" type="text" ng-model="search.created_by" placeholder="Created by" typeahead="user.user_id as user.user_name for user in transformationFunction(all_users, $viewValue) | filter:{user_name:$viewValue}" class="form-control">
以及范围:
$scope.transformationFunction = function(object) {
var newArray = [];
for(var key in object) {
newArray.push({user_id: key, user_name: object[key].user_name});
}
return newArray;
console.log(newArray)
};
但是,当我进行搜索时,我会在开始输入内容时得到所有相关的用户。 另外,当我单击它们时,搜索过滤器将起作用并向我显示结果。 但是,当我在搜索时单击下拉列表中的用户时,文本字段显示的是ID,而不是用户名。
例如:我开始输入Mira ,下拉菜单显示Miranda,当我单击它时,文本字段显示4。
我在这里错过了什么?
如果您将用户存储为数组,例如
$scope.users = [{
id: 1,
name: "Fancyname"
},
{
id: 2,
name: "Fancyname2"
}]
您可以使用.map函数,如下所示:
var index = $scope.users.map(function(x) {return x.id; }).indexOf(idYourAreLookingFor);
var user= $scope.users[index];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.