如何检查 ReportControl 对象上是不是存在 Reportid 或不使用 *ngif?
Posted
技术标签:
【中文标题】如何检查 ReportControl 对象上是不是存在 Reportid 或不使用 *ngif?【英文标题】:How to check Reportid exist on ReportControl object or not using *ngif?如何检查 ReportControl 对象上是否存在 Reportid 或不使用 *ngif? 【发布时间】:2020-09-10 18:02:24 【问题描述】:我在 Angular 7 应用程序上工作,我遇到了需要检查的问题
如果 Reportid 存在或不存在于 Report Control 对象上,则使用 component.html 上的 *ngIf。
在report.component.ts
:
displayreport: any = ;
Reportid: string;
ngOnInit()
this._displayreport.GetReportControl(Reportid).subscribe((res: any) =>
this.ReportControl = res;
console.log("report control is" + JSON.stringify(this.ReportControl)
);
this.ReportControl
只返回一个对象:
"reportid":"2040","reportName":"financialAsset","reportType":"1"
预期结果:
*ngIf="???????"
【问题讨论】:
【参考方案1】:displayreport: any = ;
Reportid: string;
ReportControl: any;
ngOnInit()
this._displayreport.GetReportControl(this.Reportid).subscribe((res: any) =>
this.ReportControl = res;
console.log("report control is" + JSON.stringify(this.ReportControl)
);
如果您在 html(ngIf) 中的 response(res) 中检查值 reportid
是否可用,可以通过以下方式实现:
*ngIf="ReportControl && ReportControl.reportid"
*ngIf="ReportControl?.reportid"
两者的工作方式类似,它们检查ReportControl
是否存在,然后检查对应的reportid
是否存在,这种方法更可靠,因为它避免了未定义的属性错误。
【讨论】:
【参考方案2】:用作 *ngIf = "报表控制器?.reportid"
【讨论】:
在你的场景中没有循环是什么意思 因为这是对象并且有更多的属性 即使您的对象具有不同的属性,ngIf 也将作为单个条件检查而不是循环。希望我能正确理解您的担忧 当在 ngif 上使用两个条件时使用 and or && 表示 *ngif(第一个条件和第二个) 或使用 && 你需要使用&&以上是关于如何检查 ReportControl 对象上是不是存在 Reportid 或不使用 *ngif?的主要内容,如果未能解决你的问题,请参考以下文章