繁体   English   中英

使用id搜索angular.js

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM