Как редактировать ввод текста в списке

У меня есть список полей для комментариев и кнопок, которые идут к каждому полю. Когда пользователь нажимает кнопку «Изменить», я хочу, чтобы было включено только это конкретное текстовое поле. Когда я нажимаю «Сохранить» или «Отменить», я хочу, чтобы текстовое поле было скрыто, а «

" to be visible.

Вот мой ng-шаблон, где я пытаюсь отслеживать по индексу

         <ng-template #item let-item let-i = "index">
           <textarea [disabled] = "IsDisabled(i)" [(ngModel)] = "item.commentText" nz-input rows = "4"></textarea>
             <nz-form-item>
              <button nz-button nzType = "primary" [nzLoading] = "submitting" (click) = "openEdit(i)">Edit Comment</button>
               <button (click)=updateCommentsById(item, index)>                                    
                Save Comment</button>
              </nz-form-item>
              </nz-form-item>
           </ng-template>



async updateCommentsById(item, index) {
        console.info(item, index);

}
openEdit(index){
//Open this list item for edit
}

 IsDisabled(index, disableMe = true) {
    return disableMe;
}

editCommentClicked(index) {
    this.IsDisabled(index, false);
}

cancelCommentClicked(index) {
    this.IsDisabled(index, true);
}

Как вы видите в этом списке, каждая строка имеет текстовое поле. Когда пользователь нажимает на кнопке «Редактировать» я хочу, чтобы текстовое поле было включено только для этой строки. Когда пользователь нажимает кнопку «Отмена» или «Сохранить», я хочу, чтобы соответствующие действия были прикреплены только к этой строке.

Как я могу использовать индекс для редактирования и сохранения каждой строки

Пожалуйста, укажите также код вашего компонента.

Geo242 19.03.2024 18:29

Покажите, пожалуйста, как был реализован IsDisabled

Lajos Arpad 29.03.2024 16:03
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Здесь вы хотите добавить идентификатор элемента и добавить индекс к идентификатору элемента.

<ng-template #item let-item let-i = "index">
           <textarea id = "TextComment_{{index}}" [disabled] = "IsDisabled(i)" [(ngModel)] = "item.commentText" nz-input rows = "4"></textarea>
             <nz-form-item>
              <button id = "EditComment_{{index}}" nz-button nzType = "primary" [nzLoading] = "submitting" (click) = "openEdit(i)">Edit Comment</button>
               <button id = "SaveComment_{{index}}" (click)=updateCommentsById(item, index)>                                    
                Save Comment</button>
              </nz-form-item>
              </nz-form-item>
           </ng-template>

затем при нажатии кнопки вы можете отображать свои элементы из dom на основе имени идентификатора

onClick(){
  (document.getElementById('EditComment_' + index) as any).disabled = true;
        (document.getElementById('CancelButton_' + index) as any).disabled = false;
        (document.getElementById('TextComment_' + index) as any).disabled = false;
        (document.getElementById('SaveComment_' + index) as any).disabled = false;
}

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