如何在Angular中检查另一个observable中的元素是否存在于另一个中?

时间:2018-04-06 17:31:48

标签: angular typescript ionic2

我有两个列表元素并排。

NEW      |     APPROVED
-------------------------
ONE   [X]      ONE
TWO   [ ]      THREE
THREE [X]

我有一个复选框,单击该按钮将禁用该复选框,因此我无法再次单击它,并将一个类添加到父列表元素。然后该元素显示在“APPROVED”列表中。

当用户实际使用该应用程序时,所有这一切都很有效。

当页面加载时,列表会正确填充,但我不确定如何应用类/禁用复选框到“新”列表中的元素。

当用户点击该复选框时,我只是在.ts文件中设置变量:

constructor() {
    isApproved: boolean = false;
    ...
}

...

// item has been clicked and status updated into db.
item.isApproved = true;

...
do other stuff

以下是我的html的样子:

<ion-item *ngFor="let item of items" [ngClass]="{approved: item.isApproved}">
    ...
</ion-item>

在我的构造函数中,我不确定如何在页面加载时检查“APPROVED”列表中的项目,然后将类应用于“NEW”列表。我知道“APPROVED”列表中的项目正确显示,这些是需要在“NEW”列中将类应用于它们的项目。

实际上,真的简单的js就像是:

foreach(item In New list as item) {
   if (item is in approved list) {
        item.isApproved = true;
   }
}

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

在构造函数或ngOnInit方法中编写以下代码片段以设置isApproved字段:

NewList.forEach(item=>{
    approvedList.forEach(approvedItem=>{
        if(item.text===approvedItem.text){
            item.isApproved = true;
            }
        });
    });
}