Mat-select: выберите текущее значение, когда клавиша ввода - число

У меня есть переменная tipo типа Number. Когда я делаю это:

<mat-select placeholder = "Tipo" formControlName = "tipo">
  <mat-option [value] = "item.key" *ngFor = "let item of arrayOfValues | keyvalue">
    {{ item.value }}
  </mat-option>
</mat-select>

он не выбирает текущий tipo для раскрывающегося списка (потому что это число, а не строка). .key кажется, работает/сопоставляется только для строки (если на самом деле я меняю typo на строку, это работает).

Каков правильный способ сопоставления ключей как целого числа в этом случае?

Пробовал это:

this.form = this.fb.group({
  tipo: [data.tipo.toString(), [Validators.required]]
});

который, кажется, работает, но мне не нравится это как обходной путь (в основном он обрабатывает число как строку, только для соответствия цели).

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
0
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Проблема здесь не в типе tipo formControl. Причиной является тип item.key, который, вероятно, является строкой. Возможно, если item.key и tipo являются числами, желаемое поведение будет работать нормально.

KeyValue предоставит ключ строкового типа, поэтому добавьте +, чтобы преобразовать его в число: <mat-option [value] = "+item.key" ...>

Документация по каналу KeyValue
Пример рабочего стекблиц

Это уж точно. Вот почему я размещаю .tostring, и это работает. Вопрос в том, как заставить его работать, сохраняя int? :)

markzzz 17.03.2022 21:16

Я обновил ответ. Вы можете сохранить его номер, преобразовав item.key в число, просто добавив оператор «+»

Rabii Kahlaoui 17.03.2022 21:37

более элегантное решение. спасибо

markzzz 18.03.2022 08:36

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