2015-08-28 84 views

回答

2

你在你的搜索功能得到一个错误。

item.id.indexOf is not a function

你得到这一点,因为item.id是一个整数文字。

您可以尝试先转换id.toString(),或将查询解析为整数。

$scope.search = function(item) { 

    return ((item.name.indexOf($scope.query || '')) !== -1 || (item.id.toString().indexOf($scope.query || '')) !== -1); 

}; 

Here是一个工作示例。匹配区分大小写,请牢记这一点。

1

只需更换:

<li ng-repeat="x in phones | filter: search| orderBy:orderProp" > 

<li ng-repeat="x in phones | filter: query | orderBy:orderProp" > 

(您scope属性的名称是query,而不是search)。

+0

当然这将是工作。但我想过滤多个字段。看看:http://stackoverflow.com/questions/13216115/filtering-by-multiple-specific-model-properties-in-angularjs-in-or-relationship – rajagopalx

+0

我相信他是想提供过滤功能。 –

+0

是的确切Michael G – rajagopalx

0

像这样改变list.html的代码。你必须通过文本框的NG-模型过滤

<div class="container"> 

    <input type="text" ng-model="query"> 

    <ul> 
     <li ng-repeat="x in phones | filter: query | orderBy:orderProp" > 
     <span><a ng-href="#/phones/{{x.id}}">{{x.name}}</a></span> 
     <p> {{ x.id}} </p> 
     <p> {{ x.age}} </p> 
     </li> 

    </ul> 

</div> 
+0

我想通过过滤功能实现这一点。请参阅:http://stackoverflow.com/questions/13216115/filtering-by-multiple-specific-model-properties-in-angularjs-in-or-relationship – rajagopalx