我在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
可以是String
,bool
和num
:只有List
中的项目直接匹配此表达式,即具有
与此项目以及包含以下内容的列表的项目匹配的值
匹配项被返回。
Map
:这定义了一个模式图。特定过滤器输入列表中包含的对象的属性。例如
{name:"M", phone:"1"}
谓词将返回项目列表具有包含“M”的
name
属性和phone
属性包含“1”。可以使用特殊的属性名称
$
。(如
{$: "text"}
中一样)以接受与对象的任何属性的匹配。这等效于简单的子字符串匹配,其
String
为如上所述。