2016-08-08 9 views
0

私は、私の観測値が配信されるときに提示したいポップアップメッセージを表示します。Observableプロパティに基づいてポップアップメッセージを表示する方法は?

これは、文字列に観察返す私の関数である。

public sendUpdate() { 
this._mtService.sendCurrentUpdate(this.myList).subscribe(
res => this.messageToDisplay = res, 
error => this.messageToDisplay = error 
); 
} 

これは、私は、関連するメッセージをポップアップを提示し、私の関数である:今

public showMessageDialog(message) { 
    let config = new MdDialogConfig() 
     .title('Message:') 
     .textContent(message) 
     .ok('Got it'); 

    this.dialog.open(MdDialogBasic, this.element, config); 
    } 

、私はどこかを知りたいと観察可能な状態になったら、このメッセージをmessageToDisplayと表示する方法を教えてください。

あなたは、観察がそのがそれを提示する際に、文字列を受け取り、のを待っている間に、私はいくつかのローダーを表示することができますどのように私に言うことができる場合、私はトンでも良いだろう...

私はこれを実行しようとしました。

public sendUpdate() { 
    this._mtService.sendCurrentUpdate(this.myList).subscribe(
    res => this.messageToDisplay = res, 
    error => this.messageToDisplay = error 
    ); 
    this.showMessageDialog(this.messageToDisplay); 
    } 

が、どのようなここに起こることは、私は、更新をクリックして初めて、私は空のポップアップを見て、私は再びそれをクリックした場合、私はメッセージでポップアップを参照してくださいということです、それが起こることをその明白な理由文字列はまだ戻って来なかったが、どうやってそれを乗り越えるのか?

ありがとうございました!

答えて

1

あなたはsubscribe()に渡す機能を使用すると、後で同様showMessageDialog()を呼び出す必要があり、したがって、後で/非同期に呼び出されます。

public sendUpdate() { 
    this.showLoader(); 
    this._mtService.sendCurrentUpdate(this.myList).subscribe(
    res => { this.stopLoader(); this.showMessageDialog(res); }, 
    error => { this.stopLoader(); this.showMessageDialog(error); } 
    ); 
} 
関連する問題