管道完成后如何获得价值?

时间:2018-06-30 03:50:45

标签: angular observable angular-pipe

例如。 我希望Angular自动更新值(使用可观察的值)。

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observalble<any>((ob) => {
    setInterVal(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async).i }}</p> <!-- not work -->
<p>{{ (test.i | async) }}</p> <!-- not work -->

1 个答案:

答案 0 :(得分:2)

首先需要纠正拼写错误:setInterVal应该是setInterval(小写v),而Observalble应该是Observable

然后,您需要添加null安全运算符,因为test的异步结果将以不确定的开始,如果尝试从不确定的值获取i属性,则会导致错误。通过添加?,如果i不为空,它将仅尝试读取test | async

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observable<any>((ob) => {
    setInterval(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async)?.i }}</p> <!-- not work -->

Here is a StackBlitz demo