Здесь у меня есть один 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>





Вы можете просто использовать *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здесь