将过滤器应用于嵌套对象的* ngFor

时间:2018-03-28 14:38:16

标签: angular nested pipes-filters

我在我的应用程序中使用this 管道示例,它适用于简单对象,但不适用于嵌套对象,例如让我们在链接中获取示例并将auther更改为对象而不是字符串,现在作者将从此转变:

"author": "George R. R. Martin",

对此:

"author": {
     "name": "George R. R. Martin",
     "age": 25
}

我还更改了过滤器值以适应更改:

[(ngModel)]="filter.author.name"

然而,在这些更改后,搜索者不再为作者输入工作。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

原因是过滤器被定义为Book类的实例:filter: Book = new Book();,这意味着当您尝试执行此操作[(ngModel)]="filter.author.name"时会出现错误,因为Book class将author定义为字符串,而不是具有name属性的对象。

一种可能的解决方案是创建一个Author类,其中包含所需的属性(即名称和年龄)以及类型为authorFilter的对应Author。然后,当过滤器类型为age时,您可以修改过滤器以查找嵌套属性Author

Working demo