管道完成后如何获取值?
How do I get a value after pipe complete?
例如。
我想要 Angular 自动更新值(使用 observable)。
// 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 -->
您需要先更正拼写错误:setInterVal
应为 setInterval
(小写 v),Observalble
应为 Observable
。
然后,您需要添加空安全运算符,因为 test
的异步结果将开始未定义,如果您尝试从 i
属性 获取 属性 会导致错误一个未定义的值。通过添加 ?
,如果 test | async
不为空,它只会尝试读取 i
。
// 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 -->
例如。 我想要 Angular 自动更新值(使用 observable)。
// 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 -->
您需要先更正拼写错误:setInterVal
应为 setInterval
(小写 v),Observalble
应为 Observable
。
然后,您需要添加空安全运算符,因为 test
的异步结果将开始未定义,如果您尝试从 i
属性 获取 属性 会导致错误一个未定义的值。通过添加 ?
,如果 test | async
不为空,它只会尝试读取 i
。
// 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 -->