Angularjs按特定元素过滤

时间:2016-04-05 21:38:33

标签: javascript angularjs angularjs-filter angularjs-ng-model

我找不到仅按标题过滤我的列表的方法。

我的列表是一个由以下对象组成的数组:

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

我的html文件中还有一个输入字段

<input type="search" id="search" class="form-control" ng-model="search.title" placeholder="Search by title">

我的控制器正在观看此字段

$scope.$watch('search.title', function(val) {
      $log.log($filter('filter')(vm.posts, val));
    });

这就是我想要仅通过其标题过滤我的vm.posts(我上面提到的对象列表)的地方。相反,它会被整个对象过滤,bodytitle部分。我知道如何通过filter:search在html文件中执行此操作,但我不知道如何在控制器中执行此操作。

1 个答案:

答案 0 :(得分:1)

可以两种方式完成

$scope.$watch('search.title', function(val) {
    $log.log($filter('filter')(vm.posts, $scope.search);
});

$scope.$watch('search.title', function(val) {
    $log.log($filter('filter')(vm.posts, {title: val});
});