当我的Observable返回空

时间:2016-10-21 20:53:12

标签: angular

我有一个主页,其中有一个搜索输入框,它会路由到另一个页面以显示结果。在该结果页面中,我有一个* 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>

我很感激任何帮助。感谢

1 个答案:

答案 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>