在使用Observables的Angular2中,如何识别订阅的observable何时具有值?

时间:2016-10-31 13:28:08

标签: angular typescript rxjs observable

我订阅了一个observable,如果对象中的一个值为空,我需要提供一个默认值。问题是,当我实际拥有一个值时,它仍然采用默认值。请参阅下面我目前的方法:

在ngOnInit中使用setTimeout(我的理解是首先执行ngOnChanges,然后执行ngOnInit):

           ngOnInit() {
                setTimeout(() => {     
                     this.checkEmptyDescription(this.ntData.description);//this method checks for an empty this.ntData.description

                    }, 0);    
                }

ngOnChanges

        ngOnChanges(changes: SimpleChanges) {
            this.loadData();

        }
        private checkEmptyDescription(notes: string) {
            if (notes === null || notes === undefined || notes.trim() === '') {
                this.editedDescription = this.defaultDescription;
            }
            else {
                this.editedDescription = this.ntData.description;
            }
        }

protected loadData() {
    this._ntDataStr.getNoteData(this.id).subscribe(data => {
        this.ntData= data;


    });

}

更新

这是我使用的另一种方法:

protected loadData() {
    this._ntDataStr.getNoteData(this.id).subscribe(data => {
        this.ntData= data;
        this.editedDescription = this.ntData.description || this.defaultDescription ;


    });

}

0 个答案:

没有答案