在您的控制器内部,您可以查看query
文本的更改并使用 Javascript 等效项{expression} | filter: {expression}
,即(使用您必须注入的服务$filter('filter')
命名的过滤器)。'filter'
$filter
假设您的 HTML 片段由控制器MyController控制。然后您可以将其更改为:
myApp.controller("MyController", ["$scope", "$filter", function($scope, $filter) {
$scope.$watch('query', function(newVal, oldVal) {
console.log("new value in filter box:", newVal);
// this is the JS equivalent of "phones | filter: newVal"
$scope.filteredArray = $filter('filter')($scope.phones, newVal);
});
}]);
每当您query
进行更改时,过滤后的数组将filteredArray
在您的 $scope 中可用,并且您可以filteredArray
在代码段中用作表达式。
所有这些实际上都应该记录在http://docs.angularjs.org/api/ng.$filter和http://docs.angularjs.org/api/ng.filter:filter中。但是,第一个链接的文档太少了,您实际上只能从第二个链接的评论中获取它。我试图将它添加到文档中,但是在克隆 angular 并构建文档之后,通过浏览器访问它们根本不起作用,并且导航 API 无声无息地失败,没有任何有用的错误,所以我放弃了。