我在我的 Angular 应用程序中遇到问题,无法在子组件中更改按钮状态,现在我首先显示我的代码。
这是一个子组件
<child-component
[(canAddMore)]="canAddMoreSo"
[index]="index"
[formGroup]="form"
[selectedValues]="soValues"
controlName="so"
></child-component>
和子组件 ts 文件
@Input() selectedValues: number[];
@Input() index: number;
@Input() formGroup: FormGroup;
@Input() controlName: string;
private _canAddMore: boolean;
@Input() public set canAddMore(value: boolean){
this._canAddMore = value;
this.canAddMoreChange.emit(value);
}
@Output() public canAddMoreChange: EventEmitter<boolean> = new EventEmitter<boolean>();
constructor() { }
public add(): void{
this.canAddMore = false;
}
public remove(): void{
this.canAddMore = true;
this.formGroup.get(this.controlName).reset();
}
这个子组件,有两个按钮,一个是添加按钮,可以显示下拉选择,另一个是删除,可以隐藏下拉选择。
该子组件的 HTML 如下所示:
<label [formGroup]="formGroup">
<select class="parameterInputSelect" [formControlName]="controlName" *ngIf="!_canAddMore">
<option *ngFor="let param of selectedValues" [value]="param">{{param}}</option>
</select>
<button mat-mini-fab color="primary" matTooltip="Add Sort Order" *ngIf="_canAddMore"
(click)="add()">
<mat-icon>add</mat-icon>
</button>
<button
class="delete-button"
mat-mini-fab color="primary"
matTooltip="Remove Sort Order"
(click)="remove()"
*ngIf="!_canAddMore">
<mat-icon>delete</mat-icon>
</button>
</label>
问题是,如果我单击添加按钮和删除按钮,选择 dropdowm 将不会被隐藏。
任何解决方案?