Я разрабатываю приложение для чата с функциональностью Chat Group. Я создал страницы «Создать новую группу» и «Изменить существующую группу». На моей странице «Редактировать группу» я загружаю все списки пользователей и проверяю участников, присутствуют ли они в группе, чтобы обеспечить возможность добавления или удаления как существующего, так и нового участника. Мой код выглядит так:
edit-group.page. html
Обратите внимание на состояние *ngIf
в ионной кнопке.
Этот *ngIf
проверяет, является ли друг уже членом группы, с помощью функции inGroup()
, а также проверяет, является ли друг администратором с помощью функции checkadmin()
.
Мои функции следующие:
edit-group.page.ts
inGroup(friend) {
//Currently this.groupMembers.lenth is 3 but this function is called 150 times as I have 150 users
for (var i = 0; i < this.groupMembers.length; i++) {
console.log("Kartik In Group Count: " + i);
if (this.groupMembers[i].$key == friend.$key) {
return true;
}
}
return false;
}
checkadmin() {
if (this.group.admin == this.afAuth.auth.currentUser.uid) {
return true;
} else {
return false;
}
}
Итак, у меня есть всего 150 пользователей, которые перебирают *ngFor="let friend of friends"
в моем ion-элементе в html. и для каждого друга проверяются функции inGroup(friend)
и checkadmin()
.
Теперь мое приложение всегда будет иметь значение l oop, как только страница загрузится. Функции inGroup()
и checkAdmin()
продолжают циклически проходить через *ngIf
. Есть идеи, что я тут делаю не так ????