【问题标题】:Filtering by object using the special $ character in angularjs is not working使用angularjs中的特殊$字符按对象过滤不起作用
【发布时间】:2014-11-21 03:20:16
【问题描述】:

根据 angularjs 文档,您应该能够将对象传递给过滤器方法。您可以在使用对象时指定要过滤的列,也可以使用“特殊 $”字符,它应该搜索所有属性。当我指定要过滤的列名时,过滤器效果很好,但是当我尝试使用 $ 过滤所有列时,它不起作用。我不确定我是否正确使用它。有谁知道如何纠正这个问题?

        var filterObject = { $ : 'Jeff'};
        $scope.myFilteredData = $filter('filter')($scope.myRawData, filterObject);     

【问题讨论】:

  • 您的 myRawData 中有什么?它必须是一组具有可过滤属性的对象。

标签: javascript json angularjs filter dataset


【解决方案1】:

角度过滤器需要一个数组和某种类型的过滤器对象才能工作。您可以在https://docs.angularjs.org/api/ng/filter/filter 中找到更多信息。默认情况下,$filter('filter') 调用将返回内置的通用/简单过滤器。然后,您的第一个参数需要是具有属性的对象数组。您的第二个参数可以是您演示的对象。

var app = angular.module('app', []);

app.controller('ExampleCtrl', 
function ($scope, $filter)  {
        var x = [{name : 'Tim'}, {'name'  : 'Jim'}, {'name'  : 'Jeff'}];

        console.log($filter('filter')(x, {$ : 'Jeff'}));
});

http://jsfiddle.net/wg6mp56y/1/找到它

【讨论】:

  • 原来这行得通......我将结果传递给的对象只是有问题。很高兴看到这方面的工作示例,因为没有很多 Web 资源引用基于 $ 的对象过滤。
  • 很高兴它有效。顺便说一句,以这种方式使用过滤器并不是很习惯,但我相信你知道..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多