首页 > 解决方案 > MEAN Stack - MongoDB - 在具有两种不同条件的文档中循环

问题描述

我正在为医生创建 MEAN Stack 应用程序,在 MongoDB 中我有不同的集合(用户和患者) - 请参阅附加图像以更好地了解它的外观。

在此处输入图像描述 在此处输入图像描述

我创建了每个用户都可以使用他们的电子邮件和密码登录和注销的功能,登录后他只能查看、编辑和删除他添加的患者,而不是其他患者(来自其他医生)。

当医生添加新患者时,在 MongoDB 中,患者与医生 ID 一起保存(请参见下图),因此当该用户登录时,我会遍历患者并仅显示该医生的患者

当我想在登录用户没有任何患者或删除他们以前的患者时显示消息“Niste dodali pacijente...”(您还没有患者...)时遇到问题...

我试过:

 <p class="text-center" *ngIf="patient.length == 0 || userIsAuthenticated && (userId === patient.doctor) == 0">Niste dodali pacijente...</p>

当4号医生登录时,他得到了这个(他的病人和前一个医生没有病人的消息)

在此处输入图像描述

其他医生的情况相同(例如医生 3)

在此处输入图像描述

请帮我解决这个问题,实际上我想显示消息“Niste dodali pacijente”,只要该医生删除所有患者或他还没有添加患者。谢谢

<div class="container">
<div class="row">
    <div class="col-12" *ngFor="let patient of patients">
       <!-- Patient accordion -->
        <accordion [closeOthers]="onePatientAtTime" ngIf="userIsAuthenticated && userId === patient.doctor">
             ...
        </accordion>
        <p class="text-center" *ngIf="patient.length == 0 || userIsAuthenticated && (userId === patient.doctor) == 0">Niste dodali pacijente...</p>
    </div>
</div>

标签: angularmongodbmean-stack

解决方案


你好,伙计,因为您正在遍历患者列表,您可能应该使用布尔变量来触发这种情况。

<div class="container">
<div class="row">
    <div *ngIf="shouldNoPatientsShow" class="col-12" *ngFor="let patient of patients">
       <!-- Patient accordion -->
        <accordion [closeOthers]="onePatientAtTime" ngIf="userIsAuthenticated && userId === patient.doctor">
             ...
        </accordion>
    </div>
        <p class="text-center" *ngIf="shouldNoPatientsShow || userIsAuthenticated && (userId === patient.doctor) == 0">Niste dodali pacijente...</p>
</div>

如果患者数组为 0,则在 ts 文件中将变量 shouldNoPatient show 设置为 true


推荐阅读