#angular #mongodb #mean-stack
#angular #mongodb #средний стек
Вопрос:
Я создаю приложение MEAN Stack для doctor, и в MongoDB у меня разные коллекции (пользователи и пациенты) — смотрите Прикрепленные изображения, чтобы лучше понять, как это выглядит.
Я создал функциональность, в которой каждый пользователь может входить и выходить из системы со своей электронной почтой и паролем, а при входе в систему он может видеть, редактировать и удалять только добавленных им пациентов, а не других пациентов (от других врачей).).
Когда врач добавляет нового пациента, в MongoDB пациент сохраняется с идентификатором врача (см. Изображение Ниже), поэтому, когда этот пользователь входит в систему, я перебираю пациентов и показываю только пациентов для этого врача
У меня проблема, когда я хочу отобразить сообщение «Niste dodali pacijente …» (У вас еще нет пациентов …) когда у вошедшего в систему пользователя нет пациентов, или удалите их предыдущих пациентов…
Я пытался с :
<p class="text-center" *ngIf="patient.length == 0 || userIsAuthenticated amp;amp; (userId === patient.doctor) == 0">Niste dodali pacijente...</p>
и когда доктор 4 вошел в систему, он получает это (его пациенты и сообщения о том, что у предыдущего врача нет пациентов)
та же ситуация для других докторов (например, Doctor 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 amp;amp; userId === patient.doctor">
...
</accordion>
<p class="text-center" *ngIf="patient.length == 0 || userIsAuthenticated amp;amp; (userId === patient.doctor) == 0">Niste dodali pacijente...</p>
</div>
</div>
Комментарии:
1. Добро пожаловать в Stackoverflow? Пожалуйста, избегайте изображений, где это возможно. Первые два следует заменить фрагментами json с примерами документов. Добавьте соответствующий код, в котором вы запрашиваете базу данных для получения списка, который вы пытаетесь отобразить.
2. Не могли бы вы поделиться своим ответом API.
Ответ №1:
Привет, приятель, поскольку вы просматриваете список пациентов, вам, вероятно, следует использовать логическую переменную для запуска этого случая.
<div class="container">
<div class="row">
<div *ngIf="shouldNoPatientsShow" class="col-12" *ngFor="let patient of patients">
<!-- Patient accordion -->
<accordion [closeOthers]="onePatientAtTime" ngIf="userIsAuthenticated amp;amp; userId === patient.doctor">
...
</accordion>
</div>
<p class="text-center" *ngIf="shouldNoPatientsShow || userIsAuthenticated amp;amp; (userId === patient.doctor) == 0">Niste dodali pacijente...</p>
</div>
и в файле ts установите для переменной shouldNoPatient значение true, если массив пациентов равен 0
Ответ №2:
Спасибо вам, ребята, за вашу помощь, я изменил логику, и теперь каждый пациент будет виден любому врачу, но только врач, который добавил пациента, может редактировать и / или удалять этого пациента…
<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 amp;amp; 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>