我有一个主页,其中有一个搜索输入框,它会路由到另一个页面以显示结果。在该结果页面中,我有一个* ngFor循环通过返回的observable(searchResult)。
我有<div *ngIf="searchResult">
,显示observable是否为空。但是,当组件初始化时,从主页到结果页面,此div快速加载并在搜索结果返回后消失。有没有另一种方法来检查Observable是否为空,所以我可以使用布尔而不是使用这个* ngIf =“searchResult”。
这是我的订阅:
getDocument(searchText:string) {
this._contractService.getDocument(searchText)
.subscribe(
document => this.document = document,
error => this.errorMessage = <any>error);
}
这是我的* ngIf:
<div id="search-not-found" class="col-xs-12" *ngIf="!searchResult">
<div class="alert alert-success" role="alert"><p>Sorry, we did not find any match related to your search"</p></div>
</div>
我很感激任何帮助。感谢
答案 0 :(得分:0)
我能够解决这个问题。我添加了一个布尔变量(searchResultEmpty:boolean=false
)并将其初始化为false。然后在我的订阅中,我将该布尔值更改为true。
这是我更新的订阅:
getDocument(searchText:string) {
this._contractService.getDocument(searchText)
.subscribe(
document => {this.document = document, this.searchResultEmpty=true},
error => this.errorMessage = <any>error);
}
这里是div:
<div *ngIf="searchResultEmpty">
<div id="search-not-found" class="col-xs-12" *ngIf="!searchResult">
<div class="alert alert-success" role="alert"><p>Sorry, we did not find any match related to your search"</p></div>
</div>
</div>