【发布时间】:2021-12-14 19:36:10
【问题描述】:
我有搜索输入,用户将在其中输入值并显示匹配的记录。我在ngOnit 中打电话给getSearchResults。
我需要在找到时显示结果,否则如果 api 状态为 false,则需要显示“未找到结果”。
但是当我得到 api 响应为 true 时,它首先显示“未找到结果”,然后显示找到数据。
如果 api 状态为真,如何避免首先显示“未找到结果”?
我尝试了不同的*ngIf 条件,但没有按预期工作。
Ts
searchResults:any;
searchResultsFlag:boolean = false;
horseResults:any;
userResults:any;
getSearchResults(){
this.SpinnerService.show();
this.horseService.SearchProfile(this.searchValue).subscribe((results) => {
if (results['status'] === false) {
this.SpinnerService.hide();
this.searchResultsFlag = false;
} else {
this.SpinnerService.hide();
this.searchResultsFlag = true;
this.searchResults = results['data'];
this.horseResults = this.searchResults.horses;
this.userResults =this.searchResults.users;
}
});
}
HTML
<div class="horse_slider_wrap search_result_card" *ngIf="searchResultsFlag">
<h5 class="mb-3" *ngIf="userResults && userResults.length>0">Matched User Results</h5>
<div class="row">
<div class="col-lg-3" *ngFor="let user of userResults">
....
</div>
</div>
<h5 class="mb-3" *ngIf="horseResults && horseResults.length>0">Matched Horse Results</h5>
<div class="row">
<div class="col-lg-3" *ngFor="let horse of horseResults">
....
</div>
</div>
</div>
<p *ngIf="!searchResultsFlag">No results found.</p>
【问题讨论】:
标签: javascript angular if-statement angular-ng-if