Html ngIf不工作
我在父模板中使用ngIf。我有以下代码 在html中:Html ngIf不工作,html,angular,angular-ng-if,Html,Angular,Angular Ng If,我在父模板中使用ngIf。我有以下代码 在html中: <button *ngIf="saveButton" type="button" class="button-success" (click)="save()">Save</button> <add (setSavebutton)="setSavebutton($event)"></add> 在我的孩子(add)中,我做: @Output()设置保存按钮:EventEmitter=newev
<button *ngIf="saveButton" type="button" class="button-success" (click)="save()">Save</button>
<add (setSavebutton)="setSavebutton($event)"></add>
在我的孩子(add)中,我做:
@Output()设置保存按钮:EventEmitter=neweventemitter();
if(this.form.valid){
console.log(this.form.valid);//true
此.setSavebutton.emit(true);
}
两个console.log返回true,但我的按钮未显示
我做错了什么
编辑
我在附近找到了一份工作。。他们的孩子的代码是一样的
在父html中:
<button [hidden]="!saveButton" type="button" class="button-success" (click)="save()">Save</button>
保存
为什么隐藏的有效而ngIf无效?您的问题不清楚代码从何处调用。 一般解决方法:
constructor(private cdRef:ChangeDetectorRef){}
private setSavebutton(_boolean: any) {
this.saveButton = _boolean;
this.cdRef.detectChanges();
console.log(this.saveButton); // true
}
有了更多信息,就可以建议如何修复根本原因。
(单击)=“save()”
调用save()
,但没有save()
方法。这并不重要。这是关于按钮没有显示的问题。我不会添加我所有的代码,你会不高兴的。你可以添加相关的代码,或者调整你的代码,让它对我们有意义。你从何处调用setSaveButton()
?这不是一个反应式表单,但它应该是这样工作的:S但遗憾的是它没有。它会在表单中加载数据如果表单(具有所需验证器的formbuilder)有效,它将在父级上启用提交按钮。我稍微编辑了我的问题,但它似乎[隐藏]起作用。“仍然没有回答问题”,这是因为问题没有提供足够的信息。我假设运行在Angulars zone之外的代码调用您的setSaveButton()
method.Angular没有收到更改检测周期到期的通知,因此不会更新绑定。它在子级上使用@Output运行。顺便说一句,它没有解决这个问题。它会弄乱数据,并用错误的数据刷新数据。
<button [hidden]="!saveButton" type="button" class="button-success" (click)="save()">Save</button>
constructor(private cdRef:ChangeDetectorRef){}
private setSavebutton(_boolean: any) {
this.saveButton = _boolean;
this.cdRef.detectChanges();
console.log(this.saveButton); // true
}