如何根据Observable属性显示弹出消息?

时间:2016-08-08 14:36:22

标签: javascript angular typescript observable typescript1.8

我有一个弹出式消息,我希望在我的observable交付时呈现,它是一个可观察的字符串。

这是我的函数,返回字符串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);
  }

现在,我想知道在observable准备就绪时,我应该在何处以及如何调用此消息来显示messageToDisplay

如果你能告诉我如何在observable等待接收字符串然后当它出现在那里时我可以显示一些加载器,那会更好......

我试着这样做:

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

但是这里发生的是第一次点击更新我看到一个空的弹出窗口,如果我再次点击它,我会看到弹出的消息,很明显它发生了因为字符串没有来回来了,但我该如何克服它?

谢谢!

1 个答案:

答案 0 :(得分:1)

传递给getContent()的函数将稍后/异步调用,因此您需要稍后调用subscribe()

showMessageDialog()