Как показать поле ввода, выбрав вариант в угловом?

Здесь у меня есть один material native select, и в этом раскрывающемся списке выберите два варианта (% и число), когда параметр% в этот раз я хочу показать скидку по полю ввода%, и когда я выбираю вариант номера, в этот раз я хочу показать скидку по полю ввода номера, как это можно ли отобразить поле ввода, выбрав опцию?

<div>
  <mat-form-field>
    <input matInput placeholder = "Enter Price" type = "number" [(ngModel)] = "newObj.newPrice" name = "newPrice">
  </mat-form-field>

  <mat-form-field>
    <select matNativeControl>
      <option value = "percentagewise">%</option>
      <option value = "numberwise">Number</option>
    </select>
  </mat-form-field>

  <mat-form-field>
    <input matInput placeholder = "Enter Discount By %" [(ngModel)] = "newObj.newDiscountByPercentage" name = "newDiscountByPercentage">
  </mat-form-field>

  <mat-form-field>
    <input matInput placeholder = "Enter Discount By Number" type = "number" [(ngModel)] = "newObj.newDiscountByNumber" name = "newDiscountByNumber">
  </mat-form-field>  
</div>
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
2 009
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете просто использовать *ngIf, но сначала вам нужно определить ngModel на select, чтобы получить two-way binding, а затем использовать его переменную в *ngIf.

<mat-form-field>
    <select matNativeControl [(ngModel)] = "discountType">
      <option value = "percentagewise">%</option>
      <option value = "numberwise">Number</option>
    </select>
  </mat-form-field>

  <mat-form-field *ngIf = "discountType == 'percentagewise'" >
    <inputmatInput placeholder = "Enter Discount By %" [(ngModel)] = "newObj.newDiscountByPercentage" name = "newDiscountByPercentage">
  </mat-form-field>

  <mat-form-field *ngIf = "discountType == 'numberwise'" >
    <input matInput placeholder = "Enter Discount By Number" type = "number" [(ngModel)] = "newObj.newDiscountByNumber" name = "newDiscountByNumber">
  </mat-form-field>

Также вы должны определить discountType в вашем файле component.ts, чтобы избежать ошибок во время компиляции aot. Подробнее о директиве *ngIfздесь

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