【发布时间】:2015-10-02 09:35:00
【问题描述】:
我正在前端使用 AngularJS 编写应用程序。我想通过任何单词/字段搜索表格;一个搜索框搜索所有内容。我试图遵循这个 plunker 的工作示例:http://plnkr.co/edit/aIuSDYlFbC4doW6pfsC9?p=preview
这是我在前端的代码:
<div class = "row">
<label>Search: <input ng-model="query"></label>
</div>
<div class = "row">
<table ng-repeat="post in posts | orderBy: sort | filter: search">
<tr>
<td> {{index(post)}} </td>
<td> {{post.title}} </td>
<td> {{post.author}} </td>
<td> {{post.content}} </td>
<td> {{post.date | date: "d/M/yyyy"}} </td>
</tr>
</table>
</div>
这是在我的主控制器内部:
'use strict';
$scope.posts = posts.posts;
$scope.search = function (row) {
return (angular.lowercase(row.author).indexOf($scope.query || '') !== -1 ||
angular.lowercase(row.title).indexOf($scope.query || '') !== -1 ||
angular.lowercase(row.content).indexOf($scope.query || '') !== -1 ||
angular.lowercase(row.date).indexOf($scope.query || '') !== -1 ||
};
我该怎么办?谢谢
【问题讨论】:
-
filter: query。我还会在orderBy之前通过filter传递数组 -
您发布的示例似乎使用 angular 1.0.3;我怀疑任何新项目都在使用这个版本。过滤器的角度发生了巨大变化,这看起来不像是我期望在现代角度版本中工作的功能。
-
另外,您似乎在该过滤器代码中有一些语法错误,即缺少关闭
),以及后面没有选项的尾随||。 -
@Phil:我知道 orderBy 与 filter 上的顺序无关紧要,它会按照现在的方式工作。
-
@VSO 它可能不会产生功能上的差异,但给
orderBy更少的项目排序会使其更快
标签: angularjs filter angularjs-scope angularjs-ng-repeat angularjs-filter