【发布时间】:2017-11-04 20:14:59
【问题描述】:
我在 *ngFor 语句中调用函数:
@Component({
selector: 'foo-view',
template: '<div *ngFor="let foo of loadAll() | async"></div>'
})
export class FooComponent {
loadAll() : Observable<Foo[]> {
return this.http.get(`api/foos`)
.map(response => response.json() as Foo[]);
}
}
当代码启动时,它会一遍又一遍地无限循环发送http请求。
为什么? 我该怎么做才能避免这种情况?
附:我知道像
这样的标准解决方法@Component({
selector: 'foo-view',
template: '<div *ngFor="let foo of foos"></div>'
})
export class FooComponent implements OnInit {
foos: Foo[] = [];
ngOnInit() {
loadAll().subscribe(foos => this.foos = foos);
}
loadAll() : Observable<Foo[]> {
return this.http.get(`api/foos`)
.map(response => response.json() as Foo[]);
}
}
但我正在寻找删除多余变量的方法。
【问题讨论】:
标签: angular typescript asynchronous rxjs