Angular 4如何在ngFor中过滤组数据

时间:2017-12-03 22:29:08

标签: angular

我正在使用Angular构建项目。我有一组样本数据,但我无法使用角度过滤器过滤它们。

以下是数据:

issues = [
{'date': '12.01.2015', 
'text': [
    {'name': 'Lorem ipsum dolor sit amet', 'status': 'open' },
    {'name': 'Maecenas pellentesque', 'status': 'closed' }
]},
{'date': '12.04.2015', 
'text': [
    {'name': 'Lorem ipsum dolor sit amet', 'status': 'open' },
    {'name': 'Maecenas pellentesque', 'status': 'closed' },
    {'name': 'Fusce iaculis, purus fringilla', 'status': 'closed' }
]}
];

我正在做两次展示日期以及之后发布的日期:

<div *ngFor="let group of issues">
<span class="item__date">{{group.date}}</span>
<div class="panel panel-default" *ngFor="let text of group.text">
    <div class="panel-body">{{text.name}}
        <span class="pull-right">{{text.status}}</span>
    </div>
</div>

我有按钮“全部”,“打开”,“关闭”。我想切换视图以仅查看打开和关闭的问题。我实际上可以列出所有问题:

return this.issues.slice();

但我无法使用过滤来仅查看开放或已解决的问题:

return this.issues.filter((issue) => {
    return issue.text.status === 'open';
});

这给了我一个错误“属性'文字'在类型'{'date'上不存在:string;'text':{'name':string;'status':string;} [];} [ ]”“。 请给我一个建议,如何处理过滤器只能解决一类问题,例如:

issues = [
{'date': '12.01.2015', 
'text': [
    {'name': 'Lorem ipsum dolor sit amet', 'status': 'open' },
]},
{'date': '12.04.2015', 
'text': [
    {'name': 'Lorem ipsum dolor sit amet', 'status': 'open' },
]}
];

任何帮助将不胜感激。感谢。

0 个答案:

没有答案