Модальный текст возвращает undefined

Итак, я исследовал это в течение достаточно долгого времени. У меня есть модальное окно с текстовым полем внутри. Я хочу, чтобы когда кто-то нажимал «Опубликовать», я хотел бы видеть, что они публикуют. На данный момент он возвращает undefined, и я не могу понять, почему. Вот код:

test.component.html

<form>
  <div class = "form-group">
    <label for = "exampleFormControlTextarea1">Confess.</label>
    <textarea class = "form-control" id = "textarea" rows = "3"></textarea>
  </div>
  <button type = "button" (click) = "submitPost()" class = "btn btn-primary postMssg">
    Post
  </button>
</form>    
<div *ngFor = "let data of datasource; let i = index">
  {{ data.post }}
  <button
    type = "submit"
    data-toggle = "modal"
    [attr.data-target] = "'#' + data.key"
    (click) = "check('#' + data.key)"
  >
    Reply
  </button>
  <div
    class = "modal fade"
    [attr.id] = "data.key"
    tabindex = "-1"
    role = "dialog"
    aria-labelledby = "exampleModalLabel"
    aria-hidden = "true"
  >
    <div class = "modal-dialog" role = "document">
      <div class = "modal-content">
        <div class = "modal-header">
          <h5 class = "modal-title" id = "exampleModalLabel">Modal title</h5>
          <button
            type = "button"
            class = "close"
            data-dismiss = "modal"
            aria-label = "Close"
          >
            <span aria-hidden = "true">&times;</span>
          </button>
        </div>
        <div class = "modal-body">
          <form>
            <div class = "form-group">
              <label for = "commentText">Example textarea</label>
              <textarea
                class = "form-control data.key"
                id = "commentText"
                rows = "3"
              ></textarea>
            </div>
          </form>
        </div>
        <div class = "modal-footer">
          <button type = "button" class = "btn btn-secondary" data-dismiss = "modal">
            Close
          </button>
          <button
            type = "button"
            (click) = "addComment(data.key)"
            class = "btn btn-primary"
          >
            Post
          </button>
        </div>
      </div>
    </div>
  </div>
</div>

test.component.ts

 addComment(key) {
    let res = "." + key;
    let complete = $("." + key).val();
    console.info(complete);
  }    
  check(key) {
    console.info(key);
  }


submitPost() {
    // console.info(this.idCount);
    let post = $("#textarea").val();

    if (post !== "") {
      // this.posts = [];
      let item = this.db.list("/test").push({
        post: post,
        name: localStorage.getItem("name"),
        likes: 0,
        id: this.idCount + 1,
        likeBtn: 0,
        fireBtn: 0,
        time: moment().format("llll")
      });

      this.db.database
        .ref("/test")
        .child(item.key)
        .update({ key: item.key });

      this.datasource.push({
        post: post,
        name: localStorage.getItem("name")
      });
    }

    let result = this.db
      .list("/testID")
      .valueChanges()
      .subscribe(val => {
        val.forEach((value: any) => {
          this.db.database
            .ref("/testID")
            .child("1")
            .child("idCount")
            .transaction(count => {
              return count + 1;
            });

          this.unsubscribe(result);
        });
      });

    $("#textarea").val("");
  }

Пожалуйста, не стесняйтесь направить меня к сообщению или статье, которая может помочь, если вы не готовы отдать свои 2 цента. Я прочитал много сообщений SO, и ничто не похоже на то, с чем я имею дело. Я делал это раньше некоторое время назад, и я не помню, чтобы мне было так трудно собрать это вместе. Во всяком случае, я пытаюсь сделать раздел комментариев для сообщений для веб-сайта, который я создал. Трудно создать раздел комментариев, когда вы не видите данных.

Я подумал, что это проблема с моими именами классов, но все они уникальны и заполняются, когда я пытался использовать console.info в разделе addComment.

Опубликуйте весь связанный код (файл Ts all)!

Prashant Pimpale 07.03.2019 12:06

это весь код. За исключением функции submitPost(), которая не имеет к этому никакого отношения.

Dre Jackson 07.03.2019 12:08

submitPost - это функция, получающая вызов, когда я нажимаю кнопку публикации

Prashant Pimpale 07.03.2019 12:09

Не стесняйтесь предоставить стекблиц

Prashant Pimpale 07.03.2019 12:10

@PrashantPimpale Я только что включил функцию submitPost

Dre Jackson 07.03.2019 12:13

Спасибо, но не удается открыть диалоговое окно, из-за которого запрашивается stackblitz текущего рабочего кода.

Prashant Pimpale 07.03.2019 12:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
190
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

TextArea не назначил модель. Используйте ngModel в текстовой области и передайте эту модель тегу, в котором вы закрываете модальное окно.

ДОБАВИТЬ:

  <ion-textarea placeholder = "Comienza a dictar" [(ngModel)] = "data" name = "title" class = "botonesNotaPorAudio"></ion-textarea>

data содержит значение вашего textArea, то есть, если вы пишете «Привет», ЗНАЧЕНИЕ ПЕРЕМЕННОЙ TEH равно «Привет».

В файле «.ts» вы можете сделать что-то вроде этого:

dismiss(data:any) {  
    this.viewCtrl.dismiss(data);
  }

И вы получите информацию в свой компонент с

 modal.onDidDismiss(data => {
  this.otherPuntoDescripcion=Object.assign({},data);
  this.puntoDescripcion.getDescripcion(this._dataBaseService,this.selectConvocatoria,localStorage.getItem("idPunto")).then(
    (resp:any)=>{   
      this.listPuntoDescription=resp;
    }
  );
});

пример пожалуйста? Я никогда раньше не использовал ngModel

Dre Jackson 07.03.2019 12:04

Другие вопросы по теме