我正在使用AngularJS,它非常棒。 我在文档中找不到 - 在JavaScript中,与这个AngularJS表达式相当的是什么:
<div>{{ (myList| filter:mySearch).length }}</div>
谢谢你的帮助。
我正在使用AngularJS,它非常棒。 我在文档中找不到 - 在JavaScript中,与这个AngularJS表达式相当的是什么:
<div>{{ (myList| filter:mySearch).length }}</div>
谢谢你的帮助。
这是关于Angular的筛选器文档:
{{ filter_expression | filter:expression }}
$filter('filter')(array, expression)
在您的情况下,它看起来像这样$filter('filter')(myList, mySearch)
。
$filter('filter')
返回过滤器函数,其中 'filter'
是您想要的过滤器名称。在这种情况下,由于它是一个通用过滤器,Angular团队决定将其命名为 'filter'
。 - bmleite$filter
在JavaScript代码中对数组使用AngularJS过滤器功能。比如说您想要根据属性 sum
对一个对象数组进行排序,您可以像这样做:$filter('orderBy')(myArr, "sum", false)
- 这与在 ng-repeat
中使用 orderBy
的效果一样:ng-repeat="t in myArr | orderBy:'sum':false"
。
因此,如果您的代码中需要获取按照 ng-repeat
中的方式排序后的数组版本,则这个功能非常方便。
请记住,它只能在 $scope
中工作。我习惯将我的 $scope
存储在全局变量 $gs
中。这样测试会更容易:$gs.$filter...
- Netsi1964$filter
服务。例如,要将 filter
过滤器注入到控制器中,您可以编写以下代码:MyCtrl = function($scope, filterFilter) {
$scope.filtered = filterFilter(myArray, expression);
}
一个非常类似的问题是如何在控制器中使用过滤器?
<input ng-model="search">
<div ng-repeat="thing in things | filter:searchResults"></div>
$scope.$watch('search', function (newValue, oldValue) {
var searchResults = filterFilter($scope.things, $scope.search);
});