我在父模板中使用ngIf。我有以下代码。
在html中:
<button *ngIf="saveButton" type="button" class="button-success" (click)="save()">Save</button>
<add (setSavebutton)="setSavebutton($event)"></add>
在组件中:
private setSavebutton(_boolean: any) {
this.saveButton = _boolean;
console.log(this.saveButton); // true
}
private save() { // save my item set by child }
在我的孩子(加)我做:
@Output() setSavebutton: EventEmitter<any> = new EventEmitter<any>();
if (this.form.valid) {
console.log(this.form.valid); // true
this.setSavebutton.emit(true);
}
console.log都返回 true ,但我的按钮没有显示。
我在这里做错了什么?
修改
我找到了一个解决方案..他们的代码是一样的。
在父html中:
<button [hidden]="!saveButton" type="button" class="button-success" (click)="save()">Save</button>
为什么隐藏有效且 ngIf 无效?
答案 0 :(得分:1)
从您的问题中不清楚您调用代码的位置。 一般的解决方法:
constructor(private cdRef:ChangeDetectorRef){}
private setSavebutton(_boolean: any) {
this.saveButton = _boolean;
this.cdRef.detectChanges();
console.log(this.saveButton); // true
}
有了更多信息,可以建议如何解决根本原因。