MEAN Stack-MongoDB-遍历具有两种不同条件的文档

时间:2019-04-08 07:15:26

标签: angular mongodb mean-stack

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

enter image description here enter image description here

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

当医生添加新患者时,在MongoDB中,该患者使用医生ID保存(请参见下图),因此当该用户登录时,我会循环浏览患者并仅显示该医生的患者

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

我尝试过:

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

当4号医生登录时,他会收到此消息(他的患者以及以前的医生没有患者的消息)

enter image description here

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

enter image description here

请帮助我解决此问题,实际上,我希望显示“ 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>

2 个答案:

答案 0 :(得分:0)

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

<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>

在ts文件中,如果患者数组为0,则将变量ShouldNoPatient显示为true

答案 1 :(得分:0)

谢谢大家的帮助,我改变了逻辑,现在所有患者都可以看到任何医生,但是只有添加了患者的医生才能编辑和/或删除该患者...

<div class="container">
   <div class="row">
     <div class="col-12">
       <!-- Patient accordion -->
        <accordion [closeOthers]="onePatientAtTime" *ngIf="patients.length > 0">
            <accordion-group #group class="mb-3" *ngFor="let patient of patients">
                ...
                <div class="edit-form-buttons text-right" *ngIf="userIsAuthenticated && userId === patient.doctor">
                    <button type="button" class="btn btn-info mr-2" [routerLink]="['/izmjena-pacijenta', patient.id]">Izmijeni</button>
                    <button type="button" class="btn btn-danger" (click)="onDelete(patient.id)">Izbriši</button>
                </div>
            </accordion-group>
        </accordion>
        <p class="text-center" *ngIf="patients.length <= 0">Niste dodali pacijente...</p>
    </div>
</div>