angular - 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>
解决方案
你好,伙计,因为您正在遍历患者列表,您可能应该使用布尔变量来触发这种情况。
<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
推荐阅读
- javascript - 以编程方式在 Three.js 中创建骨架
- python - 如何从 gensim W2V 模型中获取所有向量的转储?
- azure - 如何使用 az 命令在 Azure 订阅中添加用户
- python - 如果动作失败,如何重复循环中的步骤?
- html - 如何在 Eclipse 上打开 HTML
- python - 在 Ubuntu 20.04 中编译 libimobiledevice 时出错
- c# - 发现 DotNet 无效证书
- python - 使用 key.get_pressed() 检测单键按下
- javascript - Angular中具有依赖注入的工厂设计模式
- api - 如何从 URN 或 id 获取 LinknedIn 帖子的 URL?