Что ж, у вас есть много подходов для выполнения этой задачи.
Прежде всего вам нужно знать, что в угловых у вас есть два типа директив: структурные и неструктурные.
Структурные директивы - это директивы, которые удаляют или добавляют блок html из представления, например: *ngIf
, *ngFor
, *ngSwitch
.
Другой тип директивы подобен этомуЕсли директива floating
в вашем ion-label
изменит элемент, но он не удалит его из шаблона, может скрыть или отобразить его с помощью свойств css.
При этом вы можете использовать NgModel
для привязки к значению вашего дисконтного ввода, и когда его больше нет, у вас все еще есть значение.
Компонент
export class ClassName implements OnInit{
private show: boolean = false;
public discount: number = 0;
ngOnInit(){
if(someCondition){
this.show = true;
}
}
}
Просмотр
<button ion-button small block full color="danger" (click)="sum(discount)">Cancelar</button>
<form *ngIf="!show">
<ion-list>
<ion-item>
<ion-label floating>Discount ($)</ion-label>
<ion-input type="number" [(ngModel)]="discount"></ion-input>
</ion-item>
</ion-list>
</form>
Это сделает работу, помните, что если у вас есть директива [hidden]
, она менее производительна, чем *ngIf
, потому что angular по-прежнему будет проверять состояние и условия блокаhtml скрыто.