我在json响应上使用filter:query进行过滤。一切正常。当我将json响应转换为适当的类时,过滤器停止工作。使用查询来匹配类中字段的方法是什么?我是否应该在这种情况下创建自己的自定义@NgFilter?

最佳答案

对于AngularDart filter filter,您可以通过将字段名称作为键传递给 map 来指定要匹配的字段。

让我们以AngularDart tutorial Recipe类为例:

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

您可以使用Recipe.name write字符串对ctrl.nameFilterString进行过滤:

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

这是 filter API doc的摘录,解释了filter如何解释其参数。即在

  v | filter:x

参数x可以是
  • Stringboolnum:只有List中的项目
    直接匹配此表达式,即具有
    与此项目以及包含以下内容的列表的项目匹配的值
    匹配项被返回。
  • Map:这定义了一个模式图。特定过滤器
    输入列表中包含的对象的属性。例如{name:"M", phone:"1"}谓词将返回项目列表
    具有包含“M”的name属性和phone属性
    包含“1”。可以使用特殊的属性名称$
    (如{$: "text"}中一样)以接受与对象的任何属性的匹配。
    这等效于简单的子字符串匹配,其String
    如上所述。
  • 07-24 09:39
    查看更多