随着对象的列表的`filter`过滤器怎样才能知道哪些字段来匹配?(With List of obj

2019-10-19 08:30发布

我使用过滤器:一个JSON响应查询进行过滤。 一切正常。 当我打开JSON响应到适当的类别过滤器停止工作。 什么是使用查询匹配的一类领域的做法? 情况是这样的,我应该然后创建自己的自定义@NgFilter?

Answer 1:

对于AngularDart filter过滤器可以指定哪些字段通过将字段名作为关键字的地图匹配。

让我们用AngularDart教程 Recipe类为例:

  class Recipe { String id; String name; String category; ... }

您可以过滤,例如,在Recipe.name使用字符串ctrl.nameFilterString写:

  <li ng-repeat="recipe in ctrl.recipes | filter:{name:ctrl.nameFilterString}">

下面是从摘录filter API文档 ,说明如何filter解释它的参数。 即

  v | filter:x

参数x可以是一个

  • Stringboolnum :只有在项目List ,这个表达直接匹配,是地图匹配这个项目,这是包含匹配返回项列表,项目的任何价值的物品。

  • Map :定义一个模式的地图。 在对象上的过滤器的特定属性包含在输入列表。 例如{name:"M", phone:"1"}谓词将返回其拥有物业的项目列表name中含“M”和物业phone包含“1”。 一个特殊的属性名, $ ,都可以使用(如{$: "text"}接受对对象的任何属性的匹配。 这相当于简单的字符串匹配用String ,如上所述。



Answer 2:

我不知道你是什么意思“过滤器:查询”。 我想这是过滤器filter

filter似乎项目转换集合中的字符串,并将它们与搜索文本进行比较。 如果toString()不包含要比较它不会匹配字段。

自定义过滤器可能是最好的选择。
例:
angular.dart.tutorial / Chapter_07 / LIB /滤波器/ category_filter.dart



文章来源: With List of objects how can the `filter` filter know which fields to match on?