Как отобразить диалоговое окно, если значение равно только 1?

#html #angular #typescript #filter #angular-material

#HTML #угловой #машинописный текст #Фильтр #angular-материал

Вопрос:

Прямо сейчас мое диалоговое окно открывается всякий раз, когда я открываю сайт, но мне просто интересно, как сделать так, чтобы диалоговое окно открывалось только в том случае, если notificationType равно 1.

Существует несколько типов уведомлений, и я хочу, чтобы диалоговое окно открывалось только в том случае, если notificationType равно 1, так как мне проверить внутри моего вызова getNotification?. любое предложение или помощь будут действительно оценены.

У меня может быть несколько типов уведомлений в моем вызове get, и я хочу найти весь индекс и проверить, есть ли какой-либо notificationType 1, и если есть, то показать диалоговое окно. Если во всем индексе нет notificationType 1, не показывайте диалоговое окно.

   ngOnInit(): void {
    
    this.notificationService.getNotification().subscribe((response: any) => {
      this.broadcastText.next(response);
      if(response amp;amp; response.length){
        this.dialog.open(ReleaseDialogComponent, {
          data : {notifications: response}
        });
      }

    })
  

введите описание изображения здесь

Комментарии:

1. … проверьте ответ и посмотрите, если notificationType === 1 и если да, позвоните this.dialog.open ?

2. Привет .. Я обновил свой вопрос и надеюсь, что теперь он более понятен. спасибо за ваш отзыв.

Ответ №1:

if(response amp;amp; response.length amp;amp; response[0].notificationType === 1) должно сработать.

РЕДАКТИРОВАТЬ: на основе ответа, если вы хотите избежать выполнения ответа [0], и предполагая, что вам нужно открыть диалоговое окно, если notificacionType === 1 присутствует В ЛЮБОМ элементе ответа, вы можете сделать что-то вроде этого:

 if(response amp;amp; response.length) {
  // This will return true if notificationType === 1 is any response item
  const shouldShowNotification = response.some(el => el.notificationType === 1);

  if (shouldShowNotification) {
    this.dialog.open(ReleaseDialogComponent, {
          data : {notifications: response}
    });
  }
}
  

Если диалоговое окно все равно открывается, несмотря на notificationType, боюсь, у вас другая проблема.

Комментарии:

1. К сожалению, это не работает. по какой-то причине оно все еще показывает диалоговое окно. ;(. также как не делать response[0], потому что иногда я получаю несколько типов уведомлений за один вызов, и индекс 0 может быть notificationType 2, а индекс 3 может быть notifactionType 1 .

2. @AaseZi Это те важные детали, которые должны быть в вопросе…

3. @AaseZi Я обновил ответ, чтобы обрабатывать несколько уведомлений в ответ. К сожалению, если диалоговое окно все еще отображается, возможно, у вас возникла проблема с тем, как вы его вызываете

4. @RamiroP Это работает… Большое вам спасибо. очень признателен вам за вашу помощь. 🙂