#angular #input
#angular #ввод
Вопрос:
Я пытаюсь сделать значения ячеек в столбце таблицы доступными для редактирования. Проблема в том, что поскольку таблица динамически генерируется с использованием MatTableDataSource в Angular со значениями из API, элементы ячейки не могут иметь уникальных идентификаторов. Как я могу сделать так, чтобы при размытии (после редактирования и изменения значения в ячейке) оно передавало это значение функции, которая затем могла записать это новое значение в запрос к API для его обновления?
Вот HTML-код рассматриваемого столбца ячеек:
<div>
<table mat-table matSort (matSortChange)="sortData($event)" [dataSource]="sortedData">
<!-- Other columns -->
<ng-container matColumnDef="maxInstalls">
<th mat-header-cell *matHeaderCellDef>Max Installs</th>
<td mat-cell *matCellDef="let profile">
<input type="number" min="0" value="{{profile.maximumInstalls}}"> <!-- I just need the value of this input -->
</td>
</ng-container>
<!-- Other columns -->
<tr mat-header-row *matHeaderRowDef="columnsToDisplay"></tr>
<tr mat-row *matRowDef="let row; columns: columnsToDisplay;">
</tr>
</table>
</div>
Ответ №1:
Как насчет
<input type="number" min="0" value="{{profile.maximumInstalls}}" (blur)="onBlu(profile)">
если вам нужно значение входных данных, вам нужно создать ссылку на входные данные и использовать ее, как показано ниже
<input #valueInput type="number" min="0" value="{{profile.maximumInstalls}}" (blur)="onBlur(valueInput.value)">
смотрите рабочий пример здесь
Комментарии:
1. Это возвращает только объект, взятый из API, а не значение самого поля ввода. Мне нужно знать значение, введенное пользователем, прежде чем размывать их фокус.
2. Эта ссылка заставила ее работать. Теперь мне просто нужно выяснить, почему это иногда помечается как неиспользуемая переменная, хотя я использую ее в функции. Но спасибо! Это отвечает на этот вопрос.