如何根据angularjs中的ID过滤结果?

时间:2014-06-11 14:56:36

标签: javascript angularjs

我想使用angularjs过滤器根据ID进行搜索。我基于userId基于节点的ID生成一些值我正在查找名称,来自存储JSON对象的用户的电话号码。

但是,如果我只有ID及其JSON对象,我无法找到如何过滤结果。
我已经让jsfiddle清楚地了解我的问题http://jsfiddle.net/U3pVM/5969/
HTML

<div ng-app ng-controller="Ctrl">
Search: <input ng-model="searchTableQuery.id">
<table id="searchTextResults" class="table table-bordered">
  <tr><th>Name</th></tr>
  <tr ng-repeat="friend in friends | filter:searchTableQuery">
    <td>{{getCurrentValue(friend.id, friends)}}</td>
  </tr>
</table>
</div>

JS

function Ctrl($scope) {
    $scope.friends = [{id: 1, name:'John', phone:'555-1276'},
                         {id: 2, name:'Mary', phone:'800-BIG-MARY'},
                         {id: 3, name:'Mike', phone:'555-4321'},
                         {id: 4, name:'Adam', phone:'555-5678'},
                         {id: 5, name:'Julie', phone:'555-8765'},
                         {id: 6, name:'Juliette', phone:'555-5678'}];
    $scope.getCurrentValue = function (id, availableData) {
        var result = _.where(availableData, { 'id': id });
        if (_.isEmpty(result)) {
            result = [{id:0,value:""}];
        };
        return result[0].name;
    }
}

如何使用angularjs中的节点ID对表进行过滤?

2 个答案:

答案 0 :(得分:0)

<div ng-app ng-controller="Ctrl">
Search: <input ng-model="searchTableQuery">
<table id="searchTextResults" class="table table-bordered">
  <tr><th>Name</th></tr>
  <tr ng-repeat="friend in friends | filter:{id:searchTableQuery}">
    <td>{{getCurrentValue(friend.id, friends)}}</td>
  </tr>
</table>
</div>

答案 1 :(得分:0)

如上所述,angular会读取你的searchTableQuery,但无法将其识别为朋友对象列表的属性,因此可以对其进行过滤,或者更清楚的是现在不知道朋友对象的属性是什么他必须把它结合起来 要解决此问题,您必须通过执行以下操作强制将searchTableQuery识别为id:filter:{id:searchTableQuery}