如何在javascript中使用过滤器而不是Html

时间:2013-02-18 12:11:02

标签: angularjs

我正在使用AngularJS,它很棒。 我在文档中找不到它 - Javascript中对此AngularJS表达式的等价物是什么:

<div>{{ (myList| filter:mySearch).length }}</div>

感谢您的帮助。

3 个答案:

答案 0 :(得分:82)

这是Angular的filter documentation

在HTML模板绑定中

  

{{filter_expression | filter:expression}}

在JavaScript中

  

$ filter('filter')(array,expression)

在您的情况下,它看起来像$filter('filter')(myList, mySearch)

答案 1 :(得分:6)

作为替代语法,您还可以直接注入过滤器,而无需通过$filter服务。例如,要将filter过滤器注入控制器,您可以写:

MyCtrl = function($scope, filterFilter) {

  $scope.filtered = filterFilter(myArray, expression);
}

How to use a filter in a controller?非常相似的问题

答案 2 :(得分:1)

在你的HTML中

<input ng-model="search">
<div ng-repeat="thing in things | filter:searchResults"></div>

在你的JS中

$scope.$watch('search', function (newValue, oldValue) {
  var searchResults = filterFilter($scope.things, $scope.search);
});