ng如果不工作

时间:2017-10-10 08:33:29

标签: html angular ngif

我在父模板中使用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 无效?

1 个答案:

答案 0 :(得分:1)

从您的问题中不清楚您调用代码的位置。 一般的解决方法:

constructor(private cdRef:ChangeDetectorRef){}

private setSavebutton(_boolean: any) {
    this.saveButton = _boolean;
    this.cdRef.detectChanges();
    console.log(this.saveButton);  // true
}

有了更多信息,可以建议如何解决根本原因。